Ошибка «нет постоянных томов, доступных для этого утверждения, и класс хранения не задан» - PullRequest
0 голосов
/ 21 апреля 2019

Требуется ли создавать каталог вручную в узлах или он будет автоматически создан pv?

Вот мой файл pv & pvc, и я вижу эту ошибку

нет постоянных томов, доступных для этой заявки, и не указан класс хранения

как решить эту проблему?

kind: PersistentVolume
apiVersion: v1
metadata:
name: zk1-pv
labels:
  type: local
spec:
storageClassName: manual
capacity:
  storage: 10Mi
accessModes:
  - ReadWriteOnce
hostPath:
  path: "/mr/zk"

cat zk1-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zk1-pvc
spec:
accessModes:
  - ReadWriteOnce
resources:
  requests:
    storage: 10Mi


kubectl describe pvc zk1-pvc
Name:          zk1-pvc
Namespace:     instavote
StorageClass:
Status:        Pending
Volume:
Labels:        <none>
Annotations:   kubectl.kubernetes.io/last-applied-configuration:
               {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"zk1-pvc","namespace":"instavote"},"spec":{"accessMo...
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
Type       Reason         Age                  From                         Message
----       ------         ----                 ----                         -------
Normal     FailedBinding  12s (x14 over 3m7s)  *persistentvolume-controller  no persistent volumes available for this claim and no storage class is set*
Mounted By:  zk1-745b7cbf46-lg7v9

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

Вы забыли указать storageClassName: manual в PersistentVolumeClaim.

0 голосов
/ 25 апреля 2019

Вернуться к основному вопросу

Требуется ли создавать каталог вручную в узлах или это будет авто создан 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. В противном случае они не смогут связываться друг с другом.

Надеюсь, это очистит

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