将2个不同的有状态集连接到同一PV

时间:2018-11-05 16:52:20

标签: kubernetes kubernetes-pvc

我有一个带有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

新吊舱一直处于待处理状态。

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

1 个答案:

答案 0 :(得分:1)

  

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

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