如果删除并重新创建持久卷,Kubernetes持久卷声明是否会再次绑定?
我有以下如果删除并重新创建持久卷,Kubernetes持久卷声明是否会再次绑定?,kubernetes,persistent-volumes,persistent-volume-claims,Kubernetes,Persistent Volumes,Persistent Volume Claims,我有以下pvc(持续性批量索赔): 以及谷歌云支持的pv(持久卷): 还有谷歌云中存在的磁盘 如果我先创建pv,然后创建pvc,kubectl获得pvc,pv将显示: NAME STATUS VOLUME CAPACITY ACCESSMODES AGE test-claim-web
pvc
(持续性批量索赔):
以及谷歌云支持的pv
(持久卷):
还有谷歌云中存在的磁盘
如果我先创建pv
,然后创建pvc
,kubectl获得pvc,pv
将显示:
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
test-claim-web Bound test-pv-1 10Gi RWO 15s
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
test-pv-1 10Gi RWO Bound default/test-claim-web 25s
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
test-claim-web Bound test-pv-1 10Gi RWO 3m
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
test-pv-1 10Gi RWO Available 18s
但是如果我删除并重新创建pv
,kubectl get pvc,pv
将显示:
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
test-claim-web Bound test-pv-1 10Gi RWO 15s
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
test-pv-1 10Gi RWO Bound default/test-claim-web 25s
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
test-claim-web Bound test-pv-1 10Gi RWO 3m
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
test-pv-1 10Gi RWO Available 18s
- 为什么
仍然pvc
绑定
(重新)不会自动绑定吗?(我还观察到在pvc
之后创建pvc
会使pv
永远等待pvc
状态。)Pending
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
如果我删除并重新创建pv,kubectl get pvc,pv将显示[绑定]。
为什么pvc仍然是绑定的
这是Kubernetes 1.2中的错误,将在1.3中修复。PV和PVC最终都应该结合在一起
然而,删除绑定的PV是一个非常糟糕的主意,因为PVC可能会在运行的pod中使用,而pod会突然失去下面的存储空间。你不应该接触绑定的PV
我还注意到,在pvc之后创建pv会使pvc永远等待,并处于挂起状态
它不会永远等下去,它应该在10分钟后被绑定。使用
kube控制器管理器--pvclaimbinder sync period=15s
将其缩短为15秒。同样,在Kubernetes 1.3中,这会更好,默认值为15秒。找到解决方案了吗?