如果正在删除并重新创建持久卷,Kubernetes持久性卷声明是否会再次绑定?

时间:2016-06-09 14:47:23

标签: kubernetes persistent-volumes persistent-volume-claims

我有以下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"}

1 个答案:

答案 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秒。