Вернуться к основному вопросу
Требуется ли создавать каталог вручную в узлах или это будет
авто создан pv?
Прежде всего, ошибка в вашем выводе не связана с вашим вопросом. Как ответ на ваш вопрос - да. Он автоматически создается PV.
Чтобы добиться этого, сначала вам нужно создать StorageClass
с no-provisioner
в качестве примера ниже
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: manual
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
Затем вам нужно создать PersistentVolume
, определив этот параметр storageClassName
и hostPath
, как показано ниже:
apiVersion: v1
kind: PersistentVolume
metadata:
name: zk1-pv
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mr/zk
Затем необходимо создать PVC и Pod / Deployment, как показано ниже:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: containerName
image: gcr.io/google-containers/nginx:1.7.9
volumeMounts:
- mountPath: "/var/www/html"
name: mypd
volumes:
- name: mypd
persistentVolumeClaim:
claimName: myclaim
ПРИМЕЧАНИЕ:
Не забудьте указать параметр storageClassName: manual
в манифестах PVC и PV. В противном случае они не смогут связываться друг с другом.
Надеюсь, это очистит