在 Kubernetes 中,我怎样才能有一种访问模式来允许一次写入一个 pod 而许多 pods 只读?
In Kubernetes, how can i have an access mode to allow one pod at a time to write and many pods to read only?
我试图定义一个 PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: master-pvc
spec:
accessModes:
- ReadWriteOnce
- ReadOnlyMany
resources:
requests:
storage: 1Gi
需要只读访问的节点应该定义:
volumeMounts:
- name: mastervol
mountPath: /data/master/
readOnly: true
需要读写的master,应该定义:
volumeMounts:
- name: mastervol
mountPath: /data/master/
这是实现我想要的目标的有效方法吗?
请求volumeMount
的不是一个节点,而是一个Pod里面的容器(很多Pods可能运行在同一个节点)
一次 PVC 使用单一访问模式(即使它支持多种访问模式)1-1 绑定到 PV(另请参阅 access modes)。因此,您 不能 与 ReadWriteOnce
(对于某些 Pods)和 ReadOnlyMany
(对于其他 Pods).
如果要支持 1 个写入器和多个读取器,一种解决方案是让他们使用 ReadWriteOnce
卷并确保同一节点上的所有 Pods 运行 卷已安装(例如,通过使用 node affinity 约束)。
我试图定义一个 PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: master-pvc
spec:
accessModes:
- ReadWriteOnce
- ReadOnlyMany
resources:
requests:
storage: 1Gi
需要只读访问的节点应该定义:
volumeMounts:
- name: mastervol
mountPath: /data/master/
readOnly: true
需要读写的master,应该定义:
volumeMounts:
- name: mastervol
mountPath: /data/master/
这是实现我想要的目标的有效方法吗?
请求volumeMount
的不是一个节点,而是一个Pod里面的容器(很多Pods可能运行在同一个节点)
一次 PVC 使用单一访问模式(即使它支持多种访问模式)1-1 绑定到 PV(另请参阅 access modes)。因此,您 不能 与 ReadWriteOnce
(对于某些 Pods)和 ReadOnlyMany
(对于其他 Pods).
如果要支持 1 个写入器和多个读取器,一种解决方案是让他们使用 ReadWriteOnce
卷并确保同一节点上的所有 Pods 运行 卷已安装(例如,通过使用 node affinity 约束)。