GKE AutoPilot 的 NFS 或其他 ReadWriteMany 卷

Posted

技术标签:

【中文标题】GKE AutoPilot 的 NFS 或其他 ReadWriteMany 卷【英文标题】:NFS or other ReadWriteMany volumes for GKE AutoPilot 【发布时间】:2021-08-18 17:55:58 【问题描述】:

我可以在 GKE 上为 rwmany 找到的唯一选项是 NFS,我学习了本教程:

https://medium.com/@Sushil_Kumar/readwritemany-persistent-volumes-in-google-kubernetes-engine-a0b93e203180

唯一的问题是它包含规范

    spec:
      containers:
        - name: nfs-server
          image: k8s.gcr.io/volume-nfs:0.8
          ports:
            - name: nfs
              containerPort: 2049
            - name: mountd
              containerPort: 20048
            - name: rpcbind
              containerPort: 111
          securityContext:
            privileged: true

问题是privileged: true。这在 AutoPilot 上是不允许的。有什么想法可以绕过这个限制吗?

【问题讨论】:

也许检查filestore 我同意 - 文件存储是一个不错的选择。如果您想要动态配置,可以使用 Filestore CSI 驱动程序:github.com/kubernetes-sigs/gcp-filestore-csi-driver 文件存储不是从 1TB 开始的吗?这对我们来说太过分了 【参考方案1】:

正如我在documentation 中看到的,Autopilot 中不允许使用特权容器,这可能是 NFS 服务器无法工作的原因。

我的建议是

    使用标准集群 让 NFS 服务器在集群外部,就像在普通 VM 中一样 使用像Filestore这样的托管服务

【讨论】:

2.是我一起去的。不过,这似乎是一个丑陋的 hack,我希望可能有更好的解决方案

以上是关于GKE AutoPilot 的 NFS 或其他 ReadWriteMany 卷的主要内容,如果未能解决你的问题,请参考以下文章

使用 Terraform 部署时 GKE Autopilot 无法调度

从外部世界访问 GKE 中的共享目录

带有 modprobe 的 GKE 节点

为公共 GKE 集群设置 Cloud NAT

对于每个环境,我们是不是需要单独的 GKE 集群?

从其他区域访问私有 GKE 集群?