Увеличение размера тома для подов
Чтобы увеличить размер тома:
- Включите механизм увеличения размера тома.
- Создайте объект PersistentVolumeClaim.
- Создайте под с динамически подготовленным томом.
- Удалите под с томом.
- Запросите увеличение размера тома.
- Удалите под с томом.
Перед началом работы установите kubectl
Включите механизм увеличения размера тома
Чтобы включить механизм увеличения размера тома, в описании класса хранилища (StorageClass
) должен быть указан параметр allowVolumeExpansion: true
. В хранилищах сервиса Managed Service for Kubernetes этот механизм включен по умолчанию:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: yc-network-hdd
provisioner: disk-csi-driver.mks.ycloud.io
volumeBindingMode: WaitForFirstConsumer
parameters:
type: network-hdd
csi.storage.k8s.io/fstype: ext4
allowVolumeExpansion: true
reclaimPolicy: Delete
Создайте объект PersistentVolumeClaim
-
Сохраните следующую спецификацию для создания объекта PersistentVolumeClaim в YAML-файл с названием
pvc-expansion.yaml
.Подробнее о спецификации для создания объекта
PersistentVolumeClaim
читайте в документации Kubernetes .apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-expansion spec: accessModes: - ReadWriteOnce storageClassName: yc-network-hdd resources: requests: storage: 1Gi
-
Создайте объект
PersistentVolumeClaim
:kubectl create -f pvc-expansion.yaml
Результат:
persistentvolumeclaim/pvc-expansion created
Создайте под с динамически подготовленным томом
-
Сохраните следующую спецификацию для создания пода в YAML-файл с названием
pod.yaml
.Подробнее о спецификации для создания пода читайте в документации Kubernetes
.apiVersion: v1 kind: Pod metadata: name: pod spec: containers: - name: app image: ubuntu command: ["/bin/sh"] args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"] volumeMounts: - name: persistent-storage mountPath: /data volumes: - name: persistent-storage persistentVolumeClaim: claimName: pvc-expansion
-
Создайте под:
kubectl create -f pod.yaml
Результат:
pod/pod created
Удалите под с томом
Чтобы запросить увеличение размера тома, необходимо удалить под.
-
Удалите под:
kubectl delete pod pod
Результат:
pod "pod" deleted
Запросите увеличение размера тома
Внесите изменения в поле spec.resources.requests.storage
объекта PersistentVolumeClaim
.
-
Откройте YAML-файл с названием
pvc-expansion.yaml
:kubectl edit pvc pvc-expansion
В текстовом редакторе измените значение размера диска и сохраните его:
# Please edit the object below. Lines beginning with a '#' will be ignored, # and an empty file will abort the edit. If an error occurs while saving this file will be # reopened with the relevant failures. # apiVersion: v1 kind: PersistentVolumeClaim metadata: ... spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi # Измените на 2Gi. ... status: accessModes: - ReadWriteOnce capacity: storage: 1Gi phase: Bound
-
Дождитесь увеличения размера тома. Проверьте изменения:
kubectl get pvc pvc-expansion -o yaml
В поле
spec.resources.requests.storage
появился запрошенный объем тома:apiVersion: v1 kind: PersistentVolumeClaim metadata: ... spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi ... status: accessModes: - ReadWriteOnce capacity: storage: 1Gi ...
Создайте под с томом
-
Чтобы размер тома увеличился, необходимо создать под:
kubectl create -f pod.yaml
Результат:
pod/pod created
-
Проверьте изменения:
kubectl get pvc pvc-expansion -o yaml
Размер тома увеличен. В поле
status.capacity.storage
появился увеличенный объем:apiVersion: v1 kind: PersistentVolumeClaim metadata: ... spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi ... status: accessModes: - ReadWriteOnce capacity: storage: 2Gi ...