1

我有以下内容pvc(持久卷声明):

piVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-claim-web
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

和谷歌云支持的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自动绑定吗?(我还观察到创建pvafterpvc会使状态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"}
4

1 回答 1

1

如果我删除并重新创建 pv,kubectl get pvc,pv 将显示 [bound]。为什么PVC仍然是Bound?

这是 Kubernetes 1.2 中的错误,它将在 1.3 中修复。PV 和 PVC 最终都应该得到 Bound。

但是,删除绑定的 PV 是一个非常糟糕的主意,因为 PVC 可能在运行的 pod 中使用,并且 pod 突然失去了下面的存储空间。你不应该接触绑定的 PV!

我还观察到在 pvc 之后创建 pv 会使 pvc 永远等待 Pending 状态

它不会永远等待,它应该在 10 分钟后绑定。使用kube-controller-manager --pvclaimbinder-sync-period=15s将其缩短至 15 秒。同样,这在 Kubernetes 1.3 中会更好,那里默认为 15 秒。

于 2016-06-10T11:34:09.677 回答