本文介绍了如何在GKE中使用ReadWriteMany创建持久卷声明?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用ReadWriteMany将卷附加到多个Pod来创建持久卷声明的最佳方法是什么?

What is the best way to create a persistent volume claim with ReadWriteMany attaching the volume to multiple pods?

基于 https://kubernetes.io/docs/concepts/中的支持表存储/永久卷,GCEPersistentDisk本身不支持ReadWriteMany.

Based off the support table in https://kubernetes.io/docs/concepts/storage/persistent-volumes, GCEPersistentDisk does not support ReadWriteMany natively.

在GCP GKE世界中工作时最好的方法是什么?我应该使用CephFS或Glusterfs等群集文件系统吗?是否有关于我应该使用的,生产准备就绪的建议?

What is the best approach when working in the GCP GKE world? Should I be using a clustered file system such as CephFS or Glusterfs? Are there recommendations on what I should be using that is production ready?

我能够按照此处的步骤配置NFS Pod部署- https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266 ,但是似乎有点头,并添加了另一层复杂性.它似乎也只允许一个副本(这是有意义的,因为磁盘无法多次安装),因此,如果/当pod发生故障时,我的持久性存储也将如此.

I was able to get an NFS pod deployment configured following the steps here - https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266 however it seems a bit hacky and adds another layer of complexity. It also seems to only allow one replica (which makes sense as the disk can't be mounted multiple times) so if/when the pod goes down, my persistent storage will as well.

推荐答案

现在可以使用 Cloud Filestore .

首先创建一个文件存储实例.

First create a Filestore instance.

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中创建一个持久卷.

Then create a persistent volume in GKE.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: fileserver
spec:
  capacity:
    storage: 1T
  accessModes:
  - ReadWriteMany
  nfs:
    path: /vol1
    server: [IP_ADDRESS]

[IP_ADDRESS]在文件存储实例详细信息中可用.

[IP_ADDRESS] is available in filestore instance details.

您现在可以请求永久性批量索赔.

You can now request a persistent volume claim.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: fileserver-claim
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: "fileserver"
  resources:
    requests:
      storage: 100G

最后,将音量安装到您的Pod中.

Finally, mount the volume in your 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

Solution is detailed here : https://cloud.google.com/filestore/docs/accessing-fileshares

这篇关于如何在GKE中使用ReadWriteMany创建持久卷声明?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-22 22:47