3

我正在尝试自动化创建这些目录的过程

/data/foo
/data/foo/baz
/data/bar

在我使用命令创建的 NFS(网络文件系统)上

gcloud beta filestore instances create "${NFS_server_name}" \
  --project "${project_id}" \
  --location "${zone}" \
  --tier=STANDARD \
  --file-share=name="vol1",capacity=1TB \
  --network=name="default",reserved-ip-range="10.0.1.0/29"

这样我就可以在上面列出的目录中创建一些 kubernetes 持久卷。我发现没有办法自动化这个过程,NFS 没有公共 IP,甚至使用堡垒机也不起作用,因为谷歌云在逻辑上将运行 NFS 的 VM 与其他实例分开。

这是我使用巴斯蒂安机器的尝试:

# send remote command to provision NFS server
command_to_run='cd /data && mkdir -m 777 data && mkdir -m 777 outputs && mkdir -m 777 logs && mkdir -m 777 repos && mkdir -m 777 upload && cd repos && mkdir deployments/ && chmod 777 deployments/'
send_to_bastian=$(gcloud compute ssh ${NFS_server_name} \
    --zone ${zone} \
  --command "${command_to_run}")

echo "sending provisioning instructions to bastian machine: ${bastian_name}"
gcloud compute ssh ${bastian_name} \
    --zone ${zone} \
    --command "${send_to_bastian}"

如何在 bastian 机器上编写创建这些目录的脚本?根据我有限的 kubernetes 经验,如果 NFS 服务器上不存在该目录,我似乎无法创建持久卷声明。

仅供参考,我正在尝试自动化此博客文章: https ://danielfrg.com/blog/2018/10/model-management-polyaxon-argo-seldon/#installing-polyaxon

在那篇文章中,OP 遥控器进入 NFS 并手动创建目录,必须有某种方法来自动执行此操作吗?

4

1 回答 1

0

Filestore 实例由 Google 管理,它处理安装和配置软件的麻烦,让用户专注于他们的项目。这就是您无法通过 SSH 访问它的原因。

要在 NFS 服务器中配置文件夹而无需手动干预,您可以使用nfs-client-provisioner。这是一个 Helm 图表,用于帮助提供 NFS 文件夹而无需用户干预。


于 2019-04-09T11:31:30.390 回答