kubernetes - 如何在 GKE 中使用 ReadWriteMany 创建持久卷声明?

标签 kubernetes google-cloud-platform google-compute-engine google-kubernetes-engine

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

基于 https://kubernetes.io/docs/concepts/storage/persistent-volumes 中的支持表, GCEPersistentDisk 本身不支持 ReadWriteMany。

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

我能够按照此处的步骤配置 NFS pod 部署 - https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266然而,它似乎有点老套,并增加了另一层复杂性。它似乎也只允许一个副本(这是有道理的,因为磁盘不能被多次挂载),所以如果/当 pod 出现故障时,我的持久存储也将如此。

最佳答案

现在可以使用 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

关于kubernetes - 如何在 GKE 中使用 ReadWriteMany 创建持久卷声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54796639/

相关文章:

kubernetes - 从Ingress按其标签选择服务/ pods

google-app-engine - 将 Google Cloud Memorystore 与 App Engine 服务连接

java - 无法在 Google Compute Engine 中使用 80 端口启动 tomcat

azure - 在 Azure 上创建 Kubernetes 集群时出错 - 错误 : "code": "PropertyChangeNotAllowed"

kubernetes - 在没有集群管理员权限的情况下安装Kubeflow

google-compute-engine - 谷歌计算引擎工具gcloud异常慢

google-compute-engine - 通过 SSH 访问 GCP 虚拟机

ssh - GCE VM无法SSH到刚在其他项目中创建的新GCE VM

amazon-web-services - 如何在Kubernetes上使用Grafana版本3?

java - 如何使用 Java 检查 Google Cloud Storage 中是否存在文件夹?