Что такое PV и PVC в Kubernetes?
Persistent Volumes (PV) и Persistent Volume Claims (PVC) — это механизмы в Kubernetes, которые помогают управлять внешними хранилищами для подов.
- PV (Persistent Volume) — это абстракция физического хранилища (например, дисков, сетевых хранилищ), на которое могут ссылаться поды в кластере. Это ресурс, созданный администратором, и он существует независимо от жизненного цикла подов. PV управляется кластером и может быть динамически создан на основе требований к хранилищу.
- PVC (Persistent Volume Claim) — это запрос от пользователя или приложения на определенный объем хранилища и его параметры (например, размер, режим доступа). PVC «привязывается» к PV, который удовлетворяет этим требованиям.
Механизм взаимодействия:
- Когда под нуждается в постоянном хранилище, он обращается к PVC.
- PVC запрашивает ресурсы у кластера (в виде PV).
- Если существует PV, соответствующий запросу PVC, он «привязывается» к PVC, и под получает доступ к хранилищу.
Пример сценария:
- Администратор создаёт PV, используя, например, сетевое хранилище (NFS).
- Пользователь создаёт PVC с запросом на 10 ГБ дискового пространства.
- Система Kubernetes ищет подходящий PV, который удовлетворяет запросу, и связывает его с PVC.
- Под, запрашивающий PVC, получает доступ к хранилищу через этот PV.
Основное преимущество такой модели — разделение ответственности: администраторы управляют хранилищами через PV, а пользователи могут запрашивать эти ресурсы через PVC, не заботясь о физической реализации хранилища.
Типы Persistent Volume:
- Динамические PV — создаются автоматически при запросе PVC.
- Статические PV — создаются вручную администраторами и доступны для использования.
Пример использования в YAML:
1 2 3 4 5 6 7 8 9 10 11 |
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi |