Kubernetes 将两个不同的状态集连接到同一PV
我有一个有卷目标的状态集 StatefulSet1的音量部分为Kubernetes 将两个不同的状态集连接到同一PV,kubernetes,kubernetes-pvc,Kubernetes,Kubernetes Pvc,我有一个有卷目标的状态集 StatefulSet1的音量部分为 volumes: - name: artifact persistentVolumeClaim: claimName: artifacts PVC的定义是 kind: PersistentVolumeClaim apiVersion: v1 metadata: name: artifacts spec: accessModes: - "ReadWriteOnce" resources
volumes:
- name: artifact
persistentVolumeClaim:
claimName: artifacts
PVC的定义是
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: artifacts
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "5Gi"
storageClassName: default
现在,当我启动StatefulSet1时,一切都正常。pod获得索赔并成功安装
现在我想提出另一个有状态集,即StatefulSet2,它需要连接到PV
因此,我的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持续处于挂起状态
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
此PVC的accessMode设置为ReadWriteMany,因此kubernetes
允许在多个吊舱上安装此PVC
更可能的情况是:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: artifacts
spec:
accessModes:
- "ReadWriteMany"
resources:
requests:
storage: "5Gi"
storageClassName: default
不幸的是,我没有这个选择。PVC上的描述说明
无法使用StorageClass“rbd mario”配置卷:无效的访问模式[ReadWriteMany]:仅支持访问模式[ReadWriteOnce ReadOnlyMany]
。还有别的办法吗?所有POD都需要对PV进行读写访问。如果您的本机存储提供商不支持ReadWriteMany,则可以使用nfs服务器provisioner为您创建RWX访问模式存储类。在这里检查流程。