POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.

Несколько Claim на один Persistent Volumes?

Приветствую друзья.
Дошли руки на потыкать Kubernetes палочкой но пока он меня долбанул поленом :)

Делаю такой конфиг на создание волюмов, то есть один PersistentVolume и желаю к нему привязать пару PersistentVolumeClaim.
# Add persistent data dir
kind: PersistentVolume
apiVersion: v1
metadata:
  name: persistent-data
  labels:
    type: local
spec:
  storageClassName: persistent-data
  capacity:
    storage: 500Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: "/mnt/kubernetes"


---
# Add persistent data dir for Bind 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: bind-dns-data
spec:
  storageClassName: persistent-data
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 500Mi

---
# Add persistent data dir for Zabbix 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: zabbix-data
spec:
  storageClassName: persistent-data
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 20Gi

В результате bind-dns-data подвязывается нормально и работает а в describe zabbix-data видим
storageclass.storage.k8s.io "persistent-data" not found

Покурив немного интернеты и оффдоки, как я понял два PersistentVolumeClaim нельзя подвязать к одному PersistentVolume, что мне слегка поломало представление о мире :)

Собственно два вопроса:
1. Действительно ли нельзя или у меня руки кривые?
2. Зачем для PersistentVolumeClaim параметр
requests:
      storage: 20Gi

если PersistentVolumeClaim ограничем этим параметром у PersistentVolume, а если нельзя цеплять несколько PersistentVolumeClaim то этот параметр как-бы теряет смысл или я чего-то не догоняю и не вижу сценария?

Спасибо :)
  • Вопрос задан
  • 804 просмотра
Решения вопроса 1
Суть в том, что PV - статические сущности.
PV создаются вручную и отражают максимальный физический объём, который могут предоставить(на самом деле - сколько администратор решил предоставлять).
PVC - это по сути запрос на предоставление PV. Kubernetes попытается найти такой PV, который подойдёт к указанным параметрам - в вашем случае, он будет искать свободный PV с размером 20Gi или больше. Как только такой будет найден, будет создана связка PV-PVC - т.е. пока действует Claim, другие поды не смогут запросить этот же PV.

Однако, несколько под могут использовать один и тот же PVC.

storageclass.storage.k8s.io "persistent-data" not found

Возможно, вы не создали StorageClass с таким именем
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы