Можем ли мы получить постоянный объем только с ПВХ (без PV) в k8s? - PullRequest
2 голосов
/ 04 июня 2019

Я только что увидел файл yaml для Postgres с PersistentVolumeClaim и volumeMounts и volumes с persistentVolumeClaim в контейнере postgres. Я не смог найти ни одного PersistentVolume определенного.

Однако, когда контейнер контейнера postgres был поднят, я вижу PersistentVolume привязано к persistentVolumeClaim, определенному в файле yaml.

Так k8s создадут PersistentVolume, если мы только определим PersistentVolumeClaim?

1 Ответ

4 голосов
/ 04 июня 2019

да, это правильно, поэтому, когда ваш кластер имеет динамическую инициализацию с storage-classes , тогда вам просто нужно предоставить PVC , поставщик получит соответствующую информацию из PVC и storageClass, а затем основываясь на этой информации, он создаст PV.

  • Предоставление PV происходит динамически

    Когда ни один из статических PV, созданных администратором, не соответствует пользовательскому PersistentVolumeClaim, кластер может попытаться динамически подготовить том специально для PVC. Эта подготовка основана на классах хранения: PVC должен запросить класс хранения, и администратор должен создать и настроить этот класс для обеспечения динамической подготовки. динамически provisining

Например, здесь вы предоставляете следующую информацию в ПВХ

  1. StorageClassName

  2. Размер запрошенного хранилища

  3. AccessModes

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

В StorageClass вы предоставляете следующую информацию

  1. Поставщик

  2. Другая информация

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: manual
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
volumeBindingMode: Immediate
  • PVC - это объект kubernetes в области имен, но класс хранения в объекте k8s области действия кластера. Поэтому в вашем кластере всегда есть класс хранения по умолчанию. Поэтому, если вы не укажете имя storgaeclass в своем pvc, PV будет выделен из класса хранения по умолчанию.

kubectl get sc,pvc,pv предоставит соответствующую информацию

...