1

我有一个有 VolumeClaim 的 statefulSet。

StatefulSet1的卷部分是

  volumes:
  - name: artifact
    persistentVolumeClaim:
      claimName: artifacts

PVC的定义是

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: artifacts
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "5Gi"
  storageClassName: default

现在,当我启动 StatefulSet1 时,一切正常。吊舱收到声明并成功安装。

现在我想提出另一个需要附加到 PV 的有状态集,即 StatefulSet2。

所以我的StatefulSet2的音量部分是一样的。

  volumes:
  - name: artifact
    persistentVolumeClaim:
      claimName: artifacts

但是当我启动 StatefulSet2 时,我原来的 PVC 进入终止状态。

kubectl get pvc artifacts
NAME                STATUS        VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
artifacts           Terminating   pvc-b55f729d-e115-11e8-953e-02000a1bef39   5Gi       RWO            rbd-mario      31m

并且新的 Pod 一直处于 Pending 状态。

不知道我在这里做错了什么。但我的目标是将多个 StatefulSets/Pods 连接到同一个 PV。

4

1 回答 1

1

此 PVC的accessMode设置为ReadWriteMany,因此 kubernetes 允许将此 PVC 安装在多个 pod 上

https://docs.portworx.com/scheduler/kubernetes/shared-volumes.html

https://docs.okd.io/latest/install_config/storage_examples/shared_storage.html

更有可能这应该起作用:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: artifacts
spec:
  accessModes:
    - "ReadWriteMany"
  resources:
    requests:
      storage: "5Gi"
  storageClassName: default
于 2018-11-05T17:03:46.253 回答