在 Cloud Workstations 中掛接 Filestore 執行個體

Cloud Workstations 可以掛接位於相同 VPC 網路的 Filestore 網路檔案系統 (NFS) 執行個體。多個 Cloud Workstations 執行個體可同時存取 Filestore 執行個體。

如要進一步瞭解 Filestore,請參閱 Filestore 說明文件

事前準備

開始前,請先建立專案,並設定必要的 IAM 角色

建立專案

  1. 工作站專案中,請務必啟用 Filestore API 和 Cloud Workstations API。

    啟用 Filestore 和 Cloud Workstations API

  2. 請務必安裝並初始化 gcloud CLI。如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
    

必要的角色

如要取得建立及更新工作站所需的權限,請要求管理員在工作站專案中授予您下列 IAM 角色:

  • 如果您是 Cloud Workstations 管理員,請要求管理員授予您下列角色: Cloud Workstations 管理員 (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 執行個體的 ID。
  • FILE_SHARE_NAME:從 Filestore 執行個體提供的目錄名稱,例如 vol1
  • NETWORK_NAME:執行個體連線的虛擬私有雲網路名稱。這應與 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 建立自訂容器映像檔,請參閱「自訂容器映像檔」。