在 Cloud Workstations 中掛接 Filestore 執行個體

Cloud Workstations 可掛接位於相同虛擬私有雲網路中的 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 執行個體連線的虛擬私有雲網路名稱。應與 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 建立自訂容器映像檔,在啟動時自動將 Filestore 執行個體掛接至 Cloud Workstations。

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 建立自訂容器映像檔,請參閱「自訂容器映像檔」。