从外部世界访问 GKE 中的共享目录
Posted
技术标签:
【中文标题】从外部世界访问 GKE 中的共享目录【英文标题】:Accessing a shared directory inside GKE from an external world 【发布时间】:2020-10-13 17:52:41 【问题描述】:我是 Google Cloud 和 GKE 的新手,我正在尝试借助以下链接在 GKE 上使用 Kubernetes 设置 NFS 持久卷: https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266
我已按照说明进行操作,并且能够达到博客中提到的预期结果,但我需要从外部世界访问共享文件夹(/上传),因此有人可以帮助我实现它或任何指针或实现相同目标的任何建议
【问题讨论】:
请查看此文档 (linuxtechi.com/configure-nfs-persistent-volume-kubernetes): nfs: path: /opt/k8s-pods/data server: 192.168.1.40 @Mahboob 这里的服务器 (192.168.1.40) 是一个外部 VM,不是 GKE 集群,而是一个单独的 VM,我们在其中手动设置 NFS,但 Google Cloud Registry 本身有一个现成的映像,但我的问题更多的是如何将挂载路径暴露给外界。 【参考方案1】:我遵循doc 并像您一样在我的测试 GKE 集群上实施了这些步骤。只是我对当前用于部署的 API 版本有一个观察。我们需要使用 apiVersion:apps/v1 而不是 apiVersion:extensions/v1beta1。然后我用busybox pod测试挂载volume,测试成功。
然后我将服务“nfs-server”公开为服务类型“负载均衡器”,如下所示
并在“服务和入口”选项卡中找到了外部负载平衡器端点,例如 (LB_Public_Ip):111。我在防火墙中允许端口 111、2049、20048。之后,我在 GCP 项目中使用了一个基于 redhat 的 VM,并安装了“sudo dnf install nfs-utils -y”。然后您可以使用以下命令查看 nfs 导出列表。然后就可以按预期挂载了。
-sudo showmount -e LB_Public_IP
【讨论】:
我尝试了同样的方法,但是在我的 GCP 项目中,当我输入 showmount -e请查看以下示例配置,您可以关注 GCP doc
【讨论】:
问题是文件存储实例的最低容量为 1 TB,一个月的成本为 200 美元,因此我正在寻找替代方案,因为我几乎无法在磁盘中存储 10 GB 的数据。以上是关于从外部世界访问 GKE 中的共享目录的主要内容,如果未能解决你的问题,请参考以下文章