在 Cloud Workstations 中装载 Filestore 实例

Cloud Workstations 可以装载位于同一 VPC 网络中的 Filestore 网络文件系统 (NFS) 实例。Filestore 实例可供多个 Cloud Workstations 实例同时访问。

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

准备工作

创建项目

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

    启用 Filestore API 和 Cloud Workstations API

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

    gcloud init
    

所需的角色

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

  • 如果您是 Cloud Workstations Admin,请让管理员向您授予以下角色: Cloud Workstations Admin (roles/workstations.admin)。
  • 如果您是 Filestore 管理员,请让管理员向您授予以下角色: Filestore Editor (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 实例的 ID。
  • FILE_SHARE_NAME:Filestore 实例提供的目录的名称,例如 vol1
  • NETWORK_NAME:实例连接到的 VPC 网络的名称。它应与 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 实例的 IP 地址。

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 实例的 IP 地址。

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