Увеличение размера тома для подов
Чтобы увеличить размер тома:
- Включите механизм увеличения размера тома.
- Создайте объект 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
Запросите увеличение размера тома
-
Внесите изменения в поле
spec.resources.requests.storageобъектаPersistentVolumeClaim.:kubectl patch pvc pvc-expansion -p '{"spec":{"resources":{"requests":{"storage":"2Gi"}}}}' -
Подождите несколько минут пока увеличится размер тома. Проверьте изменения:
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 ...
Проверьте под с томом
Проверьте статус пода:
kubectl get pod pod -o yaml
Под работает. В секции status указано, что перезапусков контейнеров не было.