Управление постоянными томами
Создать StorageClass
Заголовок раздела «Создать StorageClass»Объект StorageClass, который используется в кластере Managed Kubernetes по умолчанию, задает для создаваемого сетевого диска Compute 1000 IOPS. Если вы хотите задать другое значение IOPS, создайте новый объект StorageClass:
Сохраните спецификацию объекта
StorageClassв файлmy-sc.yaml:yaml apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: my-scprovisioner: csi.mws.rureclaimPolicy: DeletevolumeBindingMode: ImmediateallowVolumeExpansion: trueparameters:iops: "10000"Здесь
parameters.iops— величина IOPS. Возможные значения — от 1000 до 10000 c шагом 100. Изменить значение после создания объекта невозможно.Создайте объект
StorageClass:bash kubectl apply -f my-sc.yamlОжидаемый результат:
bash storageclass.storage.k8s.io/my-sc created
Подготовить том динамически
Заголовок раздела «Подготовить том динамически»Сохраните спецификацию объекта
PersistentVolumeClaimв файлpvc-dynamic.yaml:yaml kind: PersistentVolumeClaimapiVersion: v1metadata:name: my-pvcspec:accessModes:- ReadWriteOnceresources:requests:storage: 8GistorageClassName: mwsЗдесь:
spec.accessModes— режим доступа к тому. Режим доступаReadWriteManyне поддерживается.spec.storageClassName— имя объектаStorageClass. Можно не указывать, если вы хотите использоватьStorageClassпо умолчанию.
Создайте объект
PersistentVolumeClaim:bash kubectl apply -f pvc-dynamic.yamlОжидаемый результат:
bash persistentvolumeclaim/pvc-dynamic created
В разделе Compute → Сетевые диски будет создан диск с префиксом pvc в имени.
Подготовить том статически
Заголовок раздела «Подготовить том статически»Создайте независимый сетевой диск Compute в той же зоне доступности, где расположен узел, на котором будет запущен под.
Сохраните спецификацию объекта
PersistentVolumeв файлpv-static.yaml:yaml apiVersion: v1kind: PersistentVolumemetadata:name: static-pvspec:accessModes:- ReadWriteOncecapacity:storage: 5Gicsi:driver: csi.mws.rufsType: ext4volumeHandle: compute/projects/<имя проекта>/disks/<имя диска>storageClassName: mwsvolumeMode: FilesystemЗдесь:
spec.csi.volumeHandle— идентификатор сетевого диска Compute.spec.storageClassName— имя объектаStorageClass.
Создайте объект
PersistentVolume:bash kubectl apply -f pv-static.yamlОжидаемый результат:
bash persistentvolume/pv-static createdСохраните спецификацию объекта
PersistentVolumeClaimв файлpvc-static.yaml:yaml apiVersion: v1kind: PersistentVolumeClaimmetadata:name: static-pvcnamespace: defaultspec:accessModes:- ReadWriteOnceresources:requests:storage: 5GistorageClassName: mwsvolumeName: static-pvspec.storageClassName— имя объектаStorageClass.spec.volumeName— имя объектаPersistentVolume.
Создайте объект
PersistentVolumeClaim:bash kubectl apply -f pvc-static.yamlОжидаемый результат:
bash persistentvolumeсlaim/pvc-static created
Увеличить размер тома
Заголовок раздела «Увеличить размер тома»Вы можете увеличить размер тома, только если он подготовлен динамически. Размер нельзя уменьшить.
Чтобы увеличить размер тома, измените значение параметра spec.resources.requests.storage в спецификации объекта PersistentVolumeClaim:
kubectl patch pvc <имя объекта PVC> -p '{"spec":{"resources":{"requests":{"storage":"<новый размер тома>"}}}}'Ожидаемый результат:
persistentvolumeclaim/<имя объекта PVC> patchedУдалить том
Заголовок раздела «Удалить том»- Динамически подготовленный том
- Статически подготовленный том
Удалите объект PersistentVolumeClaim:
kubectl delete pvc <имя объекта PVC>Ожидаемый результат:
persistentvolumeclaim "<имя объекта PVC>" deleted from default namespaceСетевой диск в сервисе Compute будет удален автоматически.