Постоянные тома
Постоянный том (Persistent Volume) используется для длительного хранения данных в кластере Managed Kubernetes. Для управления постоянными томами в Kubernetes используются объекты PersistentVolume (PV), PersistentVolumeClaim (PVC) и StorageClass.
Для постоянных томов в Managed Kubernetes рекомендуем использовать сетевые диски облачной платформ ы Servercore. Вы можете создать постоянный том на локальном диске, но при удалении ноды данные будут удалены.
После создания постоянного тома вы можете его увеличить и удалить.
Посмотреть все постоянные тома можно в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → раздел Диски.
Создать постоянный том
Создание через механизм Topology-Aware Volume Provisioning недоступно.
- Создайте StorageClass или используйте существующий StorageClass.
- Создайте PersistentVolumeClaim.
- Создайте под с постоянным томом.
1. Создать StorageClass
Для создания PersistentVolume используется объект StorageClass. StorageClass позволяет заранее описать конфигурацию постоянных томов, которые понадобятся в работе кластера.
При создании кластера будет автоматически создан один StorageClass с быстрым (fast) сетевым диском в том пуле, в котором расположена группа нод кластера.
-
Создайте yaml-файл с манифестом для объекта StorageClass.
Пример манифеста StorageClass для быстрого диска в пуле ru-1a:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: fast.ru-1a
provisioner: cinder.csi.openstack.org
parameters:
type: fast.ru-1a
availability: ru-1a
fsType: ext4
allowVolumeExpansion: trueЗдесь
fast.ru-1a
— тип StorageClass.Вы можете использовать другие готовые манифесты StorageClass.
-
Примените манифест:
kubectl apply -f <storage-class.yaml>
Укажите
<storage-class.yaml>
— имя yaml-файла с манифестом для создания нового StorageClass. -
Убедитесь, что создан объект StorageClass:
kubectl get sc
В ответе появится список созданных объектов StorageClass:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
fast.ru-1a cinder.csi.openstack.org Delete Immediate true 16m
Тип StorageClass
Формат типа StorageClass — <тип диска>.<сегмент пула, в котором он расположен>
.
Типы дисков соответствуют сетевым дискам облачной платформы Servercore:
Например, для создания быстрого диска в сегменте пула ru-1a в описании StorageClass необходимо добавить:
parameters:
type: fast.ru-1a
availability: ru-1a
2. Создать PersistentVolumeClaim
Работа с томами возможна только в режиме ReadWriteOnce — один т ом может быть примонтирован только к одной ноде, при этом к постоянному тому может быть подключен только один под. При подключении нескольких подов к одному PV данные могут быть повреждены. Для работы с режимом ReadWriteMany (монтирование тома к нескольким нодам) вы можете подключить к нодам кластера файловое хранилище.
-
Создайте yaml-файл с манифестом для объекта PersistentVolumeClaim (PVC).
Пример манифеста:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pv-claim
spec:
storageClassName: fast.ru-1a
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10GiПул в манифесте PVC должен совпадать с пулом ноды, к которой планируется подключить этот PVC. Если вы используете несколько пулов для нод кластера и PVC, укажите в описании объектов Pod их привязку к пулу.
-
Примените манифест:
kubectl apply -f <pvc.yaml>