![](/img/trans.png)
[英]How do I make a PVC to regain access to dynamically provisioned released PV
[英]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,則會失去與卷的連接,並且無法重新將其恢復。
默認的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"}}}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.