Как использовать PV и PVC для * надежных * постоянных объемов? - PullRequest
0 голосов
/ 08 октября 2018

Я следовал инструкциям в этом посте: как связать заявку на постоянный том с gcePersistentDisk?

И когда я применил это, мой PVC не связывался с PV, вместо этогоЯ получил эту ошибку в списке событий:

14s         17s          2         test-pvc.155b8df6bac15b5b   PersistentVolumeClaim               Warning   ProvisioningFailed   persistentvolume-controller   Failed to provision volume with StorageClass "standard": claim.Spec.Selector is not supported for dynamic provisioning on GCE

Я нашел сообщение на github, в котором предлагалось что-то, что исправит это:

https://github.com/coreos/prometheus-operator/issues/323#issuecomment-299016953

Но, к сожалению, это сделалобез разницы.

Есть ли где-нибудь документ, в котором говорится о том, как использовать PV и PVC для создания действительно постоянных томов?В частности, где вы можете закрыть pv и pvc и восстановить их позже, а также вернуть весь ваш контент?Потому что, как сейчас кажется, если вы потеряете свой PVC по какой-либо причине, вы потеряете соединение с вашим томом, и нет никакого способа вернуть его обратно.

1 Ответ

0 голосов
/ 09 октября 2018

Значение по умолчанию StorageClass не совместимо с gcePesistentDisk.Примерно так будет работать:

$ cat <<EOF | kubectl create -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: slow
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard
  replication-type: none
EOF

затем на вашем PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  labels:
    app: test
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: "slow" <== specify the storageClass
  resources:
    requests:
      storage: 2Gi
  selector:
    matchLabels:
      app: test

Вы также можете установить "slow" в качестве по умолчанию storageClass В этом случае вам не нужно указывать это на вашем PVC:

$ kubectl patch storageclass slow -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
...