Persistent Volume
PersistentVolume (PV) представляет собой объект API Kubernetes, отображающий связь с томами бекенд-хранилища в кластере Kubernetes. Это ресурс кластера, который создаётся и настраивается администраторами единообразно, отвечая за абстрагирование реальных ресурсов хранения и формирование инфраструктуры хранения кластера.
PersistentVolumes обладают жизненным циклом, независимым от Pod, что позволяет сохранять данные Pod постоянно.
Администраторы могут вручную создавать статические PersistentVolumes или генерировать динамические PersistentVolumes на основе классов хранения. Если разработчикам необходимо получить ресурсы хранения для приложений, они могут запросить их через PersistentVolumeClaims (PVC), которые сопоставляются и связываются с подходящими PersistentVolumes.
Содержание
Динамические Persistent Volumes и статические Persistent VolumesЖизненный цикл Persistent VolumesДинамические Persistent Volumes и статические Persistent Volumes
Платформа поддерживает управление двумя типами PersistentVolumes администраторами: динамическими и статическими Persistent Volumes.
-
Динамические Persistent Volumes: Реализуются на основе классов хранения. Классы хранения создаются администраторами и представляют собой ресурс Kubernetes, описывающий категорию ресурсов хранения. Как только разработчик создаёт PersistentVolumeClaim, связанный с классом хранения, платформа динамически создаёт подходящий PersistentVolume согласно параметрам, настроенным в PersistentVolumeClaim и классе хранения, связывая его с PersistentVolumeClaim для динамического выделения ресурсов хранения.
-
Статические Persistent Volumes: Persistent Volumes, создаваемые вручную администратором. В настоящее время поддерживается создание статических Persistent Volumes типа HostPath или NFS shared storage. Когда разработчики создают PersistentVolumeClaim без использования класса хранения, платформа сопоставляет и связывает подходящий статический PersistentVolume согласно параметрам, настроенным в PersistentVolumeClaim.
-
HostPath: Использует файловый каталог на хосте узла (локальное хранилище не поддерживается) в качестве бекенд-хранилища, например:
/etc/kubernetes. Обычно применяется только для тестовых сценариев в кластере с одним вычислительным узлом. -
NFS Shared Storage: Относится к Network File System, распространённому типу бекенд-хранилища для Persistent Volumes. Пользователи и программы могут обращаться к файлам на удалённых системах так, как если бы они были локальными файлами.
-
Жизненный цикл Persistent Volumes
-
Provisioning (создание): Администраторы вручную создают статические Persistent Volumes. После создания Persistent Volume переходит в состояние Available; альтернативно, платформа динамически создаёт подходящие Persistent Volumes на основе PersistentVolumeClaims, связанных с классами хранения.
-
Binding (связывание): Как только статический Persistent Volume сопоставлен и связан с PersistentVolumeClaim, он переходит в состояние Bound; динамические Persistent Volumes создаются динамически на основе запросов, соответствующих PersistentVolumeClaims, и также переходят в состояние Bound после успешного создания.
-
Using (использование): Разработчики связывают PersistentVolumeClaims с экземплярами контейнеров вычислительных компонентов, используя ресурсы бекенд-хранилища, отображённые Persistent Volumes.
-
Releasing (освобождение): После удаления PersistentVolumeClaim разработчиками Persistent Volume освобождается.
-
Reclaiming (восстановление): После освобождения Persistent Volume на нём выполняются операции восстановления в соответствии с параметрами политики восстановления Persistent Volume или класса хранения.