簡體   English   中英

如何將PV和PVC用於“可靠”持久卷?

[英]How do I use PV and PVC for *reliable* persistent volumes?

我按照這篇文章中的說明進行操作: 如何使用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,則會失去與卷的連接,並且無法重新將其恢復。

默認的StorageClassgcePesistentDisk不兼容。 這樣的事情會起作用:

$ 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"}}}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM