使用ReadWriteMany将卷附加到多个pods时,创建持久卷声明的最佳方式是什么?
根据https://kubernetes.io/docs/concepts/storage/persistent-volumes中的support表,GCEPersistentDisk本身并不支持ReadWriteMany。
在GCP GKE世界中工作时,最好的方法是什么?我是否应该使用集群文件系统,比如CephFS或Glusterfs?有没有关于我应该使用什么产品的建议?
我能够按照这里的步骤配置一个NFS部署-- https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266,但是它看起来有点老套,并且增加了另一层复杂性。它似乎只允许一个副本(这是有意义的,因为磁盘不能被多次挂载),所以如果/当pod宕机,我的持久存储也会。
发布于 2019-08-19 20:00:07
现在有了Cloud Filestore,这是可能的。
首先创建一个Filestore实例。
gcloud filestore instances create nfs-server
--project=[PROJECT_ID]
--zone=us-central1-c
--tier=STANDARD
--file-share=name="vol1",capacity=1TB
--network=name="default",reserved-ip-range="10.0.0.0/29"
然后在GKE中创建一个持久卷。
apiVersion: v1
kind: PersistentVolume
metadata:
name: fileserver
spec:
capacity:
storage: 1T
accessModes:
- ReadWriteMany
nfs:
path: /vol1
server: [IP_ADDRESS]
文件存储实例详细信息中提供了IP_ADDRESS。
现在,您可以请求永久卷声明。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: fileserver-claim
spec:
accessModes:
- ReadWriteMany
storageClassName: "fileserver"
resources:
requests:
storage: 100G
最后,将卷挂载到pod中。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my container
image: nginx:latest
volumeMounts:
- mountPath: /workdir
name: mypvc
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: fileserver-claim
readOnly: false
详细的解决方案在这里:https://cloud.google.com/filestore/docs/accessing-fileshares
发布于 2019-02-21 12:29:02
我同意这是令人失望的,但这是使用持久磁盘的结果,它不允许附加到多个实例读写。
我已经成功地使用了NFS和您所描述的限制。
正如您所说的,您也可以使用Gluster或类似的工具。
一个更昂贵但托管的谷歌云替代方案是云文件存储:https://cloud.google.com/filestore/docs/accessing-fileshares
您的问题表明您需要类似NFS的语义,但如果您不需要,您可以考虑使用Google Cloud Storage。
https://stackoverflow.com/questions/54796639
复制相似问题