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