VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

Динамическое выделение дисков с PVC

Механизм Persistent Volume Claim (PVC) динамически выделяет и подключает к подам блочные диски с необходимыми характеристиками.

В сервисе Kubernetes реализован CSI-драйвер(Container Storage Interface), который взаимодействует с API Платформы для управления блочными дисками.

Чтобы динамически создать PV на базе PVC, укажите корректный класс хранения (storage class). Чтобы получить полный список классов хранения и типов дисков, доступных для кластера, выполните команду:

$ kg storageclasses.storage.k8s.io
Пример ожидаемого результата
csi-ceph                   cinder.csi.openstack.org   10dcsi-ceph-retain            cinder.csi.openstack.org   10dcsi-dp1                    cinder.csi.openstack.org   10dcsi-dp1-high-iops          cinder.csi.openstack.org   10dcsi-dp1-high-iops-retain   cinder.csi.openstack.org   10dcsi-dp1-retain             cinder.csi.openstack.org   10dcsi-dp1-ssd                cinder.csi.openstack.org   10dcsi-dp1-ssd-retain         cinder.csi.openstack.org   10dcsi-hdd (default)          cinder.csi.openstack.org   10dcsi-hdd-retain             cinder.csi.openstack.org   10dcsi-ko1-high-iops          cinder.csi.openstack.org   10dcsi-ko1-high-iops-retain   cinder.csi.openstack.org   10dcsi-ko1-ssd                cinder.csi.openstack.org   10dcsi-ko1-ssd-retain         cinder.csi.openstack.org   10dcsi-local-ssd              cinder.csi.openstack.org   10dcsi-local-ssd-retain       cinder.csi.openstack.org   10dcsi-ms1                    cinder.csi.openstack.org   10dcsi-ms1-retain             cinder.csi.openstack.org   10dcsi-ssd                    cinder.csi.openstack.org   10dcsi-ssd-retain             cinder.csi.openstack.org   10d

Далее укажите класс хранения (storage class) в поле storageClass декларации PVC:

kind: PersistentVolumeClaimapiVersion: v1metadata:  name: nginx-pvc-ssdspec:  storageClassName: "csi-ko1-ssd"  accessModes:    - ReadWriteOnce  resources:    requests:      storage: 30Gi ---apiVersion: v1kind: Podmetadata:  name: nginx-test-pvc  labels:    name: nginx-test-pvcspec:  containers:    - image: nginx      name: nginx      ports:        - containerPort: 80          name: http      volumeMounts:        # name must match the volume name below        - name: nginx-persistent-storage          # mount path within the container          mountPath: /val/lib/nginx/test  volumes:    - name: nginx-persistent-storage      persistentVolumeClaim:        claimName: nginx-pvc-ssd