Заявки на постоянные тома Kubernetes создают новый постоянный том вместо привязки к доступному постоянному тому - PullRequest
1 голос
/ 16 февраля 2020

Я использую ma c OSX Catalina, используя приложение docker с включенной опцией Kubernetes. Я создаю PersistentVolume со следующим yaml и командой.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs-data
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 10Gi
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 192.168.1.250
    path: "/volume1/docker"

kubectl apply -f pv.yml

Это создает и PersistentVolume с именем pv-nfs-data , Затем я создаю PersistentVolumeClaim со следующим yaml и командой

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nfs-data
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

kubectl apply -f pv c .yml

Это создает PersistentVolumeClaim с именем pv c -nfs-data, однако он не привязывает его к доступному PersistentVolume (pv-nfs-data). Вместо этого он создает новый и привязывает его к этому. Как сделать, чтобы PersistentVolumeClaim связывался с доступным PersistentVolume

1 Ответ

3 голосов
/ 16 февраля 2020

Docker для Ма c класс хранения по умолчанию - это динамический c тип обеспечения , как вы бы получили на AKS / GKE, где он выделяет физический хранилище.

→ kubectl get StorageClass
NAME                 PROVISIONER          AGE
hostpath (default)   docker.io/hostpath   191d

Чтобы PV C использовал существующий PV, вы можете отключить класс хранения и указать в PV, какой PV C может использовать его с claimRef.

Заявка Ref

PV включает claimRef для PV C, который вы создадите

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs-data
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 10Gi
  claimRef:
    namespace: insert-your-namespace-here
    name: pv-nfs-data-claim
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 192.168.1.250
    path: "/volume1/docker"

PV C устанавливает storageClassName в ''

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pv-nfs-data-claim
  namespace: insert-your-namespace-here
spec:
  storageClassName: ''
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

Dynami c

Вы можете go динамический c маршрут с NFS, добавив NFS динамический c инициатор , создайте для него класс хранения и позвольте kubernetes решить все остальное. Более поздняя версия Kubernetes (1.13+) может использовать драйвер CSI NFS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...