【问题标题】:Accessing a shared directory inside GKE from an external world从外部世界访问 GKE 中的共享目录
【发布时间】: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 本身有一个现成的映像,但我的问题更多的是如何将挂载路径暴露给外界。

标签: kubernetes google-kubernetes-engine nfs file-sharing


【解决方案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 时,我启动了一个 REDHAT 实例,它抛出了一个错误 clnt_create: RPC: Port mapper failure - Unable to receive: errno 111(连接被拒绝)。我可以使用本地虚拟机连接到 GKE pod 并从本地虚拟机运行命令 showmount -e 吗?对此的任何建议都会有帮助
【解决方案2】:

请查看以下示例配置,您可以关注 GCP doc

【讨论】:

  • 问题是文件存储实例的最低容量为 1 TB,一个月的成本为 200 美元,因此我正在寻找替代方案,因为我几乎无法在磁盘中存储 10 GB 的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 2013-05-25
  • 2020-01-03
  • 1970-01-01
  • 2019-07-16
  • 2021-12-26
  • 2021-03-16
相关资源
最近更新 更多