在 Cloud Workstations 中挂载 Filestore 实例

Cloud 工作站可以装载位于同一 VPC 网络中的 Filestore 网络文件系统 (NFS) 实例。可以通过多个 Cloud Workstations 实例。

如需详细了解 Filestore,请参阅 Filestore 文档

准备工作

创建项目

  1. 工作站项目中,确保您已启用 Filestore API 和 Cloud Workstations API。

    启用 Filestore 和 Cloud Workstations API

  2. 确保您已安装并初始化 gcloud CLI。 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
    

所需的角色

如需获得创建和更新工作站所需的权限,请让管理员向您授予工作站项目的以下 IAM 角色:

  • 如果您是 Cloud Workstations 管理员,请让管理员授予您以下角色: Cloud Workstations Admin (roles/workstations.admin)。
  • 如果您是 Filestore 管理员,请让管理员授予您以下角色: Filestore 编辑器 (roles/file.editor)。

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建 Filestore 实例

如果您尚未创建 Filestore 实例,请使用以下 gcloud CLI filestore instances create 命令创建一个。如需了解命名信息,请参阅为 Filestore 实例命名为文件共享命名

  gcloud filestore instances create INSTANCE_ID \
    --file-share=name=FILE_SHARE_NAME,capacity=1TiB \
    --tier=ENTERPRISE \
    --network=name=NETWORK_NAME \
    --region=LOCATION \
    --project WORKSTATIONS_PROJECT_ID

替换以下内容:

  • INSTANCE_ID:用于唯一标识您的 Filestore 实例。
  • FILE_SHARE_NAME:从 Filestore 实例提供的目录的名称,例如 vol1
  • NETWORK_NAME:VPC 网络的名称 实例连接到的 IP 地址。它应该与 Cloud Workstations 集群,例如 default
  • LOCATION:您的 Filestore 实例的区域。 它应与工作站集群的区域一致。
  • WORKSTATIONS_PROJECT_ID:工作站的 ID 项目。

获取 Filestore 实例的 IP 地址

创建 Filestore 实例后,使用 filestore instances describe gcloud CLI 命令获取其 IP 地址:

  gcloud filestore instances describe INSTANCE_ID \
    --region=LOCATION \
    --project WORKSTATIONS_PROJECT_ID

替换以下内容:

  • INSTANCE_ID:用于唯一标识您的 Filestore 实例的 ID。
  • LOCATION:您的 Filestore 实例的区域。 它应与工作站集群的区域一致。
  • WORKSTATIONS_PROJECT_ID:您的工作站项目的 ID。

该命令按以下格式输出 IP 地址:

...
networks:
- connectMode: DIRECT_PEERING
  ipAddresses:
  - FILESTORE_IP_ADDRESS
...

请记下 FILESTORE_IP_ADDRESS,因为您需要这个 。

创建工作站集群

如果您尚未创建工作站集群,请使用 gcloud CLI clusters create 命令创建一个:

gcloud workstations clusters create \
    WORKSTATIONS_CLUSTER_NAME \
    --network=NETWORK_NAME \
    --region=LOCATION \
    --project=WORKSTATIONS_PROJECT_ID

替换以下内容:

  • WORKSTATIONS_CLUSTER_NAME:工作站的名称 集群。
  • NETWORK_NAME:Cloud Workstations 实例所连接的 VPC 网络的名称。它应与 Filestore 实例的网络一致,例如 default
  • LOCATION:工作站集群的区域名称。该区域应与 Filestore 实例所在的区域一致。
  • WORKSTATIONS_PROJECT_ID:工作站的 ID 项目。

创建工作站配置和工作站

如果您尚未创建 Cloud Workstations 配置和 工作站实例,请参阅 创建工作站配置创建工作站

在工作站中装载 Filestore 实例

启动 Cloud Workstations 实例后,前往终端窗口,然后运行以下命令以挂载 Filestore 实例:

sudo rpcbind
mkdir -p FILE_SHARE_NAME
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME FILE_SHARE_NAME

替换以下内容:

  • FILE_SHARE_NAME:从 Filestore 实例,例如 vol1
  • FILESTORE_IP_ADDRESS:您的 Filestore 实例。

mount 命令成功后,您会在文件共享路径中看到 Filestore 实例内容。

如需详细了解如何装载 Filestore 实例,请参阅在 Compute Engine 客户端上装载文件共享

为 Filestore 自动挂载创建自定义容器映像

您可以使用以下 Dockerfile 创建自定义容器映像,该映像会在启动时自动在 Cloud Workstations 中挂载 Filestore 实例。

FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest

RUN echo "#!/bin/bash\n\
sudo rpcbind\n\
sudo mkdir -p /home/user/FILE_SHARE_NAME\n\
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME /home/user/FILE_SHARE_NAME" | sudo tee -a /etc/workstation-startup.d/011_mount-filestore.sh

RUN sudo chmod +x /etc/workstation-startup.d/011_mount-filestore.sh

替换以下内容:

  • FILE_SHARE_NAME:从 Filestore 实例,例如 vol1
  • FILESTORE_IP_ADDRESS:您的 Filestore 实例。

如需详细了解如何为 Google Cloud 控制台创建自定义容器映像, Cloud Workstations 请参阅自定义容器映像