PersistentVolumeClaim (PVC)

PersistentVolumeClaim — запрос на хранилище от приложения. PVC создаётся в неймспейсе и привязывается к PV (или вызывает динамическое создание PV).

Где управлять

НеймспейсХранилищеPersistentVolumeClaims.

Скриншот: список PVC

Список PVC

Создание PVC

  1. ХранилищеPersistentVolumeClaims+ Добавить PersistentVolumeClaim.
  2. Задайте Имя PVC.
  3. Выберите Режим доступа (Access Mode):
    • ReadWriteOnce (RWO);
    • ReadOnlyMany (ROX);
    • ReadWriteMany (RWX).
  4. Укажите Запрашиваемый объём хранилища (например, 10Gi).
  5. Выберите StorageClassName из списка созданных в кластере.
  6. При необходимости задайте VolumeName для привязки к существующему PV.
  7. При необходимости добавьте Cелектор PV (matchLabels) для выбора PV по лейблам.
  8. При необходимости добавьте лейблы и аннотации PVC.
  9. Нажмите Создать.

Обязательные поля при создании PVC: имя PVC, режим доступа, запрашиваемый объём хранилища и StorageClass. Объём задаётся в единицах Kubernetes: байтах (B), кибибайтах (Ki), мебибайтах (Mi) или гибибайтах (Gi).

Режимы доступа

Режим доступа определяет, как PV, связанный с PVC, может монтироваться в поды:

Режим Описание Когда использовать
ReadWriteOnce (RWO) PV может быть смонтирован для чтения и записи на одном узле. Подходит для большинства баз данных и stateful-приложений, которым не нужен одновременный доступ с нескольких узлов.
ReadOnlyMany (ROX) PV может быть смонтирован в режиме только чтения на множестве узлов. Подходит для общих справочников, статических данных и конфигураций, которые не должны изменяться приложениями.
ReadWriteMany (RWX) PV может быть смонтирован в режиме чтения и записи на множестве узлов. Используйте, только если нескольким подам действительно нужен общий том для записи, например для NFS/CephFS-сценариев.

Доступность конкретного режима зависит от StorageClass и CSI-драйвера: не каждый тип хранилища поддерживает ROX или RWX.

Селектор PV и VolumeName

  • VolumeName используется для принудительной связи PVC с ранее созданным PV. Для успешной привязки должны совпадать StorageClass, режим доступа и объём, а со стороны PV должна быть возможна связь с этим PVC.
  • Селектор PV позволяет указать matchLabels и выбрать только PV с подходящими лейблами.

Статусы PVC

Статус Описание
Pending Ожидание привязки к PV.
Bound Успешно привязан к PV.
Lost Связь с PV потеряна.

Просмотр и удаление PVC

На странице PVC доступны вкладки:

  • PVC — основные параметры PVC;
  • PersistentVolumes — связанный PV;
  • Лейблы и аннотации;
  • События — события Kubernetes, связанные с PVC;
  • Манифест — YAML-манифест PVC.

Удалить PVC можно одним из способов:

  • в списке PersistentVolumeClaims нажмите значок удаления в строке объекта;
  • на странице PVC на вкладке PVC нажмите Удалить;
  • на вкладке Манифест нажмите значок удаления.

Особенности PVC

Расширение объёма

В платформе «Штурвал» после создания PVC разрешено увеличение запрашиваемого объёма через GUI. Расширение возможно только если:

  • StorageClass имеет allowVolumeExpansion: true;
  • Драйвер CSI поддерживает расширение (vSphere, oVirt, Ceph, Cinder и др.).

Как увеличить: откройте PVC → измените запрашиваемый объём → Сохранить. Файловая система внутри тома может потребовать расширения (например, resize2fs для ext4).

Ограничение: уменьшение объёма не поддерживается Kubernetes.

Задержка удаления

Если PVC используется в поде, удаление откладывается до тех пор, пока под не освободит том.