我有以下pvc
(持续音量声明):
piVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-claim-web
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
以及支持Google Cloud的pv
(持久卷):
apiVersion: v1
kind: PersistentVolume
metadata:
name: test-pv-1
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
gcePersistentDisk:
pdName: test-1
fsType: ext4
和存在的Google云中的磁盘。
如果我先创建pv
,则在pvc
之后,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
但如果我删除并重新创建pv
,则kubectl get pvc,pv
会显示:
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
仍为Bound
?pvc
(重新)自动绑定? (我还观察到在pv
之后创建pvc
会使pvc
永远等待Pending
状态。)我使用以下Kubernetes版本:
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"}
答案 0 :(得分:0)
如果我删除并重新创建pv,kubectl获取pvc,pv将显示[bound]。 为什么pvc仍然是绑定?
Kubernetes 1.2中的错误,将在1.3中修复。光伏和PVC最终都会受到限制。
但是,删除绑定的PV是一个非常糟糕的主意,因为PVC可能会在正在运行的pod中使用,而pod会突然丢失下面的存储空间。你永远不应该接触绑定的PV!
我还观察到在pvc之后创建pv使pvc永远等待待处理状态
它不会永远等待,它应该在10分钟后受到约束。使用kube-controller-manager --pvclaimbinder-sync-period=15s
将其缩短为15秒。同样,这在Kubernetes 1.3中会更好,默认会有15秒。