透過 Filestore CSI 驅動程式存取 Filestore 執行個體

Filestore CSI 驅動程式是您使用 Filestore 執行個體與 Google Kubernetes Engine (GKE) 的主要方式。Filestore CSI 驅動程式提供全代管體驗,並由開放原始碼 Google Cloud Filestore CSI 驅動程式提供支援。

Filestore CSI 驅動程式版本與 Kubernetes 子版本號碼相關聯。Filestore CSI 驅動程式版本通常是 Kubernetes 次要版本發布時可用的最新驅動程式。當叢集升級至最新的 GKE 修補程式時,驅動程式會自動更新。

優點

Filestore CSI 驅動程式具備下列優點:

  • 您可以透過 Kubernetes API (kubectl) 存取全代管型 NFS 儲存空間。

  • 您可以使用 GKE Filestore CSI 驅動程式,動態佈建 PersistentVolume。

  • 您可以搭配使用磁碟區快照和 GKE Filestore CSI 驅動程式。CSI 磁碟區快照可用來建立 Filestore 備份

    Filestore 備份會建立檔案共用區的差異副本 (包括所有檔案資料和中繼資料),並將其儲存在與執行個體不同的位置。您只能將這個副本還原至新的 Filestore 執行個體。系統不支援將備份還原至現有的 Filestore 執行個體。您可以在 Volume Snapshot 類別中新增 type:backup 欄位,使用 CSI Volume Snapshot API 觸發 Filestore 備份。

  • 您可以搭配 GKE Filestore CSI 驅動程式使用磁碟區擴充功能。磁碟區擴充功能可讓您調整磁碟區的容量大小。

  • 您可以在 Kubernetes 工作負載中使用預先配置的 Filestore 執行個體,存取現有的 Filestore 執行個體。您也可以動態建立或刪除 Filestore 執行個體,並透過 StorageClass部署,在 Kubernetes 工作負載中使用這些執行個體。

  • 支援 GKE 適用的 Filestore 多共用區。這項功能可讓您建立 Filestore 執行個體,並同時為其在任意數量的 GKE 叢集中分配多個較小的 NFS 掛接 PersistentVolume。

  • 支援基本 HDD 層級,容量至少為 100 GiB。

需求條件

  • 如要使用 Filestore CSI 驅動程式,叢集必須使用適用於服務層級的正確 GKE 版本號碼。僅支援下列服務等級:

    • 基本 HDD (適用於 GKE 1.21 以上版本)
    • 基本傳統硬碟 (100 GiB 至 63.9 TiB),適用於 GKE 1.33 以上版本
    • 搭配 GKE 1.21 以上版本的基本 SSD
    • 區域 (1 TiB 至 9.75 TiB),搭配 GKE 1.31 以上版本
    • 使用 GKE 1.27 以上版本的可用區 (10 TiB 至 100 TiB)
    • 使用 GKE 1.25 以上版本的企業
    • 如要使用 Filestore 多份功能,您的叢集必須使用 GKE 1.25 以上版本。
  • Filestore CSI 驅動程式僅支援使用 Linux 的叢集,不支援 Windows Server 節點。

  • 執行個體大小下限取決於您選取的 Filestore 服務級別:

    • 基本 HDD 至少為 100 GiB
    • 其他 Filestore 級別至少為 1 TiB

    詳情請參閱「服務等級」。

  • Filestore 預設會在 Filestore 執行個體上使用 NFSv3 檔案系統通訊協定,並支援任何 NFSv3 相容用戶端。

  • GKE 1.33 以上版本支援 Filestore 執行個體上的 NFSv4.1 檔案系統通訊協定。

事前準備

開始之前,請務必完成下列工作:

  • 啟用 Cloud Filestore API 和 Google Kubernetes Engine API。
  • 啟用 API
  • 如果您想使用 Google Cloud CLI 執行此項作業,請先安裝,然後初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update 取得最新版本。

在新叢集上啟用 Filestore CSI 驅動程式

如要在建立新的標準叢集時啟用 Filestore CSI 驅動程式,請按照下列步驟使用 Google Cloud CLI 或 Google Cloud 主控台。

gcloud

gcloud container clusters create CLUSTER_NAME \
    --addons=GcpFilestoreCsiDriver \
    --cluster-version=VERSION

更改下列內容:

  • CLUSTER_NAME:叢集名稱。
  • VERSION:GKE 版本號碼。您必須選取支援的版本號碼,才能使用這項功能。詳情請參閱 [#requirements]。或者,您也可以使用 --release-channel 旗標並指定發布版本管道

控制台

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 按一下 「Create」(建立)

  3. 選擇「Standard」叢集模式,然後按一下「Configure」

  4. 視需求設定叢集。

  5. 在導覽窗格的「Cluster」(叢集) 底下,按一下「Features」(功能)

  6. 勾選「Enable Filestore CSI driver」(啟用 Filestore CSI 驅動程式) 核取方塊。

  7. 按一下 [建立]。

如要在共用虛擬私有雲網路中使用 Filestore,請參閱「在共用虛擬私有雲的全新叢集上啟用 Filestore CSI 驅動程式」。

啟用 Filestore CSI 驅動程式後,您就可以使用驅動程式和佈建工具名稱 filestore.csi.storage.gke.io,在 Kubernetes 磁碟區中使用驅動程式。

在現有叢集上啟用 Filestore CSI 驅動程式

如要在現有叢集中啟用 Filestore CSI 驅動程式,請使用 Google Cloud CLI 或 Google Cloud 主控台。

如要在現有叢集中啟用此驅動程式,請完成下列步驟:

gcloud

gcloud container clusters update CLUSTER_NAME \
   --update-addons=GcpFilestoreCsiDriver=ENABLED

CLUSTER_NAME 替換為現有叢集的名稱。

控制台

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下您要修改的叢集名稱。

  3. 在「功能」下方,點選「Filestore CSI 驅動程式」欄位旁的 「編輯 Filestore CSI 驅動程式」

  4. 勾選「Enable Filestore CSI driver」(啟用 Filestore CSI 驅動程式) 核取方塊。

  5. 按一下 [儲存變更]。

停用 Filestore CSI 驅動程式

您可以使用 Google Cloud CLI 或 Google Cloud 主控台,在現有的 Autopilot 或標準叢集中停用 Filestore CSI 驅動程式。

gcloud

gcloud container clusters update CLUSTER_NAME \
    --update-addons=GcpFilestoreCsiDriver=DISABLED \
    --region REGION

替換下列值:

  • CLUSTER_NAME:現有叢集的名稱。
  • REGION:叢集的區域 (例如 us-central1)。

控制台

  1. 在 Google Cloud 控制台中,前往「Google Kubernetes Engine」選單。

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下您要修改的叢集名稱。

  3. 在「功能」下方,點選「Filestore CSI 驅動程式」欄位旁的 「編輯 Filestore CSI 驅動程式」

  4. 取消勾選「Enable Filestore CSI driver」核取方塊。

  5. 按一下 [儲存變更]。

使用 Filestore CSI 驅動程式存取先前建立的 Filestore 執行個體

本節說明在 GKE 中使用 Filestore CSI 驅動程式,透過 Kubernetes 磁碟區存取既有 Filestore 執行個體的一般程序:

建立 PersistentVolume 和 PersistentVolumeClaim 以存取執行個體

  1. 建立如以下範例所示的資訊清單檔案,並將其命名為 preprov-filestore.yaml

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: PV_NAME
    spec:
      storageClassName: ""
      capacity:
        storage: 1Ti
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      volumeMode: Filesystem
      csi:
        driver: filestore.csi.storage.gke.io
        volumeHandle: "modeInstance/FILESTORE_INSTANCE_LOCATION/FILESTORE_INSTANCE_NAME/FILESTORE_SHARE_NAME"
        volumeAttributes:
          ip: FILESTORE_INSTANCE_IP
          volume: FILESTORE_SHARE_NAME
          protocol: FILESYSTEM_PROTOCOL
      claimRef:
        name: PVC_NAME
        namespace: NAMESPACE
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: PVC_NAME
      namespace: NAMESPACE
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 1Ti
    
  2. 如要根據 preprov-filestore.yaml 資訊清單檔案建立 PersistentVolumeClaimPersistentVolume 資源,請執行下列指令:

    kubectl apply -f preprov-filestore.yaml
    

如要指定 NFSv4.1 檔案系統通訊協定,請在 PersistentVolume 物件的 volumeAttributes 欄位中,將 protocol 欄位設為 NFS_V4_1。如要使用 NFSv3 檔案系統通訊協定,請將 protocol 欄位設為 NFS_V3,或省略 protocol 欄位。

接著,請繼續建立會使用磁碟區的部署作業

使用 Filestore CSI 驅動程式建立磁碟區

以下各節將說明在 GKE 中使用由 Filestore CSI 驅動程式支援的 Kubernetes 磁碟區的一般程序:

建立 StorageClass

啟用 Filestore CSI 驅動程式後,GKE 會自動安裝下列 StorageClasses,用於佈建 Filestore 執行個體:

每個 StorageClass 僅適用於在相應支援的 GKE 版本號碼中執行的 GKE 叢集。如需各服務層級所需的支援版本清單,請參閱「規定」。

您可以執行下列指令,查看已安裝的 StorageClass 名稱:

kubectl get sc

您也可以在 provisioner 欄位中新增 filestore.csi.storage.gke.io,安裝使用 Filestore CSI 驅動程式的其他 StorageClass

Filestore 需要知道要在哪個網路上建立新的例項。自動安裝的 StorageClass 會使用為 GKE 叢集建立的預設網路。如果您已刪除這個網路,或想使用其他網路,就必須按照下列步驟建立新的 StorageClass。否則,自動安裝的 StorageClasses 將無法運作。

  1. 將下列資訊清單儲存為 filestore-example-class.yaml

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: filestore-example
    provisioner: filestore.csi.storage.gke.io
    volumeBindingMode: Immediate
    allowVolumeExpansion: true
    parameters:
      tier: standard
      network: default
    

    請參考以下資訊,在資訊清單中設定參數:

    • volumeBindingMode 設為 Immediate 可讓系統立即開始佈建磁碟區。這是因為 Filestore 執行個體可從任何區域存取。因此,GKE 不需要知道 Pod 的調度區域,這與 Compute Engine 永久磁碟不同。設定為 WaitForFirstConsumer 時,GKE 只會在 Pod 排程後開始佈建。詳情請參閱 VolumeBindingMode
    • 您可以在 tier 參數中指定任何支援的 Filestore 級別 (例如 BASIC_HDDBASIC_SSDZONALENTERPRISE)。
    • 在非預設 VPC 上佈建 Filestore 執行個體時,可以使用 network 參數。非預設 VPC 需要設定特殊防火牆規則
    • protocol 參數可用於設定 Filestore 執行個體的檔案系統通訊協定。可接受的值為 NFS_V3 (預設) 和 NFS_V4_1。預設通訊協定為 NFS_V3
  2. 如要根據 filestore-example-class.yaml 資訊清單檔案建立 StorageClass 資源,請執行下列指令:

    kubectl create -f filestore-example-class.yaml
    

如果您想在共用虛擬私有雲網路上使用 Filestore,請參閱「在共用虛擬私有雲中使用 Filestore CSI 驅動程式時建立 StorageClass」。

使用 PersistentVolumeClaim 存取磁碟區

您可以建立參照 Filestore CSI 驅動程式 StorageClassPersistentVolumeClaim 資源。

您可以使用預先安裝或自訂的 StorageClass

以下範例資訊清單檔案會建立參照名為 filestore-exampleStorageClassPersistentVolumeClaim

  1. 將下列資訊清單檔案儲存為 pvc-example.yaml

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
      - ReadWriteMany
      storageClassName: filestore-example
      resources:
        requests:
          storage: 1Ti
    
  2. 如要根據 pvc-example.yaml 資訊清單檔案建立 PersistentVolumeClaim 資源,請執行下列指令:

    kubectl create -f pvc-example.yaml
    

建立會使用磁碟區的部署

以下是使用名為 pvc-example.yamlPersistentVolume 資源的部署資訊清單範例。

多個 Pod 可以共用同一個 PersistentVolumeClaim 資源。

  1. 將下列資訊清單儲存為 filestore-example-deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: web-server-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: mypvc
          volumes:
          - name: mypvc
            persistentVolumeClaim:
              claimName: podpvc
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: filestore-example
      resources:
        requests:
          storage: 1Ti
    
  2. 如要根據 filestore-example-deployment.yaml 資訊清單檔案建立 Deployment,請執行下列指令:

    kubectl apply -f filestore-example-deployment.yaml
    
  3. 確認 Deployment 已成功建立:

    kubectl get deployment
    

    Filestore 執行個體可能需要一段時間才能完成佈建。在此之前,部署作業不會回報 READY 狀態。您可以執行下列指令,監控 PVC 狀態,以便查看進度:

    kubectl get pvc
    

    儲存空間配置完成後,您應該會看到 PVC 達到 BOUND 狀態。

為 Filestore 執行個體加上標籤

您可以使用標籤將相關的執行個體分組,並儲存有關執行個體的中繼資料。標籤是鍵/值組合,可協助您整理 Filestore 執行個體。您可以為每項資源加上標籤,並根據標籤篩選資源。

您可以使用 StorageClass.parameters 中的 labels 鍵提供標籤。您可以為 Filestore 執行個體加上標籤,說明該執行個體是為了哪個 PersistentVolumeClaim/PersistentVolume 而建立。自訂標籤鍵值必須遵守標籤命名慣例。請參閱 Kubernetes 儲存空間級別範例,瞭解如何將自訂標籤套用至 Filestore 執行個體。

搭配 Filestore 使用 NFSv4.1 檔案系統通訊協定

Filestore CSI 驅動程式支援 NFSv4.1 檔案系統通訊協定,且必須搭配 GKE 1.33 以上版本。如果是靜態佈建,請在 PersistentVolume 物件的 volumeAttributes 欄位中,將 protocol 欄位設為 NFS_V4_1

如要進行動態佈建,請在 StorageClass 物件的參數中將 protocol 欄位設為 NFS_V4_1

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: enterprise-multishare-rwx
provisioner: filestore.csi.storage.gke.io
parameters:
  tier: enterprise
  multishare: "true"
  instance-storageclass-label: "enterprise-multishare-rwx"
  protocol: NFS_V4_1
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true

您無法在 StorageClass 物件中將 mountOptions 設為 nfsvers=3,並使用 NFSv4.1 通訊協定掛接 Filestore 執行個體。

搭配使用 fsgroup 和 Filestore 磁碟區

Kubernetes 會使用 fsGroup 變更磁碟區的權限和擁有權,以便與 Pod SecurityContext 中使用者要求的 fsGroup 相符。fsGroup 是可套用至 Pod 中所有容器的輔助群組。您可以將 fsgroup 套用 至由 Filestore CSI 驅動程式佈建的磁碟區。

使用 Filestore 磁碟區設定 IP 存取規則

Filestore 支援卷宗的以 IP 為基礎的存取權控管規則。這項功能適用於執行 1.29.5 以上版本的 GKE 叢集。

這項功能可讓管理員指定哪些 IP 位址範圍可存取透過 GKE 動態佈建的 Filestore 執行個體。這項功能可限制存取權,只允許授權的用戶端存取,進而提升安全性,尤其是在 GKE 叢集的 IP 範圍過於廣泛,可能會將 Filestore 執行個體暴露給未授權使用者或應用程式時。

您可以直接透過 Filestore API 或在建立磁碟區時透過 Filestore CSI 驅動程式設定這些規則。您可以使用 nfs-export-options-on-create 參數,在 StorageClass 中以 JSON 格式提供所選設定。

以下範例清單檔案顯示如何指定設定:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: filestore-example
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: Immediate
allowVolumeExpansion: true
parameters:
  tier: "enterprise"
  nfs-export-options-on-create: '[
    {
      "accessMode": "READ_WRITE",
      "ipRanges": [
        "10.0.0.0/24"
      ],
      "squashMode": "ROOT_SQUASH",
      "anonUid": "1003",
      "anonGid": "1003"
    },
    {
      "accessMode": "READ_WRITE",
      "ipRanges": [
        "10.0.0.0/28"
      ],
      "squashMode": "NO_ROOT_SQUASH"
    }
  ]'

安全性選項

Filestore IP 存取規則可簡化 GKE 工作負載的共用檔案儲存空間權限設定。不過,要瞭解它如何管理檔案擁有權和存取權,必須掌握幾個重要概念:

  • NFS 和使用者對應 NFS (網路檔案系統) 是 Filestore 使用的通訊協定。這項功能會將用戶端系統 (您的 GKE Pod) 中的使用者,對應至 Filestore 伺服器中的使用者。如果伺服器上的檔案由使用者 ID 1003 擁有,且用戶端連線的使用者 ID 為 1003,則該用戶端就能存取該檔案。

  • 根擠壓和 anonUid

    • Root Squashing ROOT_SQUASH 是一種安全性功能,可防止用戶端以完整的根權限存取 Filestore 執行個體。啟用 Root 權限壓縮功能後,用戶端系統中的超級使用者會對應至 anonUid 設定指定的非特權使用者。

    • 無 Root 權限壓縮 (NO_ROOT_SQUASH) 可讓用戶端以完整的 Root 權限存取 Filestore 執行個體,這在初始設定時相當方便,但在一般作業中較不安全。

  • 初始設定和權限:根據預設,新的 Filestore 執行個體完全由根目錄使用者擁有。如果您啟用 Root 壓縮功能,但未先為其他使用者設定權限,就會失去存取權。因此,您至少需要一個含有 NO_ROOT_SQUASH 的 NFS 匯出規則,才能為其他使用者和群組初始設定存取權。

建議

  • 初始設定:請務必先設定至少一項 NFS 匯出規則,指定具有 READ_WRITE 權限的管理員範圍,並允許 NO_ROOT_SQUASH 存取權。使用這項存取權建立目錄、設定權限,並視需要指派擁有權。
  • 安全性:啟用根擠壓 (ROOT_SQUASH) 功能,提升安全性。請注意,建立磁碟區後,您只能透過 Filestore API 修改存取規則。
  • 共用存取權:Pod 安全性情境中使用 fsGroup,即可管理共用磁碟區的群組擁有權。請確認設定不會與 ROOT_SQUASH 模式重疊。這樣做會傳回 Access denied 錯誤訊息。

搭配共用虛擬私有雲使用 Filestore

本節將說明如何在服務專案中,使用共用虛擬私有雲網路上的 Filestore 執行個體。

使用共用虛擬私有雲設定叢集

如要設定使用共用虛擬私有雲網路的叢集,請按照下列步驟操作:

  1. 建立主機和服務專案
  2. 在主機和服務專案中啟用 Google Kubernetes Engine API
  3. 在主專案中建立網路和子網路
  4. 在主專案中啟用共用虛擬私有雲
  5. 在主機專案中,為服務專案的 GKE 服務帳戶授予 HostServiceAgent 使用者角色繫結
  6. 在共用虛擬私有雲網路中啟用私人服務存取權

在使用共用虛擬私有雲的新叢集中啟用 Filestore CSI 驅動程式

如要在使用共用虛擬私人雲端的新叢集中啟用 Filestore CSI 驅動程式,請按照下列步驟操作:

  1. 驗證可用的子網路和次要範圍。建立叢集時,您必須指定子網路和次要 IP 位址範圍,以供叢集的 Pod 和服務使用。

    gcloud container subnets list-usable \
       --project=SERVICE_PROJECT_ID \
       --network-project=HOST_PROJECT_ID
    

    輸出結果會與下列內容相似:

    PROJECT                   REGION       NETWORK     SUBNET  RANGE
    HOST_PROJECT_ID  us-central1  shared-net  tier-1  10.0.4.0/22
    ┌──────────────────────┬───────────────┬─────────────────────────────┐
    │ SECONDARY_RANGE_NAME  IP_CIDR_RANGE             STATUS           │
    ├──────────────────────┼───────────────┼─────────────────────────────┤
    │ tier-1-pods           10.4.0.0/14    usable for pods or services │
    │ tier-1-services       10.0.32.0/20   usable for pods or services │
    └──────────────────────┴───────────────┴─────────────────────────────┘
    
  2. 建立 GKE 叢集。以下範例說明如何使用 gcloud CLI 建立 Autopilot 或標準叢集,並為共用虛擬私有雲設定。以下範例會使用「建立一個網路和兩個子網路」一文中的網路、子網路和範圍名稱。

    Autopilot

    gcloud container clusters create-auto tier-1-cluster \
       --project=SERVICE_PROJECT_ID \
       --region=COMPUTE_REGION \
       --network=projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME \
       --subnetwork=projects/HOST_PROJECT_ID/regions/COMPUTE_REGION/subnetworks/SUBNET_NAME \
       --cluster-secondary-range-name=tier-1-pods \
       --services-secondary-range-name=tier-1-services
    

    標準

    gcloud container clusters create tier-1-cluster \
       --project=SERVICE_PROJECT_ID \
       --zone=COMPUTE_REGION \
       --enable-ip-alias \
       --network=projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME \
       --subnetwork=projects/HOST_PROJECT_ID/regions/COMPUTE_REGION/subnetworks/SUBNET_NAME \
       --cluster-secondary-range-name=tier-1-pods \
       --services-secondary-range-name=tier-1-services \
       --addons=GcpFilestoreCsiDriver
    
  3. 建立防火牆規則,允許叢集中的節點、Pod 和服務之間進行通訊。以下範例說明如何建立名為 my-shared-net-rule-2 的防火牆規則。

    gcloud compute firewall-rules create my-shared-net-rule-2 \
       --project HOST_PROJECT_ID \
       --network=NETWORK_NAME \
       --allow=tcp,udp \
       --direction=INGRESS \
       --source-ranges=10.0.4.0/22,10.4.0.0/14,10.0.32.0/20
    

    在本例中,來源範圍 IP 值來自先前步驟,您在該步驟中驗證了可用的子網路和次要範圍。

在共用虛擬私有雲中使用 Filestore CSI 驅動程式時建立 StorageClass

以下範例說明如何在共用虛擬私人雲端中使用 Filestore CSI 驅動程式時建立 StorageClass:

cat <<EOF | kubectl apply -f -

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: filestore-sharedvpc-example
provisioner: filestore.csi.storage.gke.io
parameters:
  network: "projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME"
  connect-mode: PRIVATE_SERVICE_ACCESS
  reserved-ip-range: RESERVED_IP_RANGE_NAME
allowVolumeExpansion: true

EOF

更改下列內容:

  • HOST_PROJECT_ID:共用虛擬私有雲網路的主專案 ID 或名稱。
  • SHARED_VPC_NAME:先前建立的共用虛擬私有雲網路名稱。
  • RESERVED_IP_RANGE_NAME:要用來佈建 Filestore 執行個體的特定保留 IP 位址範圍名稱。這是選填欄位。如果指定保留的 IP 位址範圍,則必須是命名的位址範圍,而非直接的 CIDR 值。

如果您想在執行 1.23 以上版本的 GKE 叢集中佈建由 Filestore 多共用區提供支援的磁碟區,請參閱「使用 GKE 適用的 Filestore 多共用區來最佳化儲存空間」。

重新連線 Filestore 單一共用磁碟區

如果您使用 Filestore 搭配基本硬碟、基本 SSD 或企業 (單一共用) 層級,可以按照這些操作說明,將現有的 Filestore 執行個體重新連結至 GKE 工作負載。

  1. 如要查看預先配置的 Filestore 執行個體詳細資料,請按照「取得特定執行個體的相關資訊」一文中的操作說明進行。

  2. 重新部署 PersistentVolume 規格。在 volumeAttributes 欄位中,修改下列欄位,使用與步驟 1 中 Filestore 執行個體相同的值:

    • ip:將這個值修改為預先佈建的 Filestore 執行個體 IP 位址。
    • volume:將這個值修改為預先配置的 Filestore 執行個體共用區名稱。在 claimRef 中,請務必參照步驟 2 中的相同 PersistentVolumeClaim。
  3. 重新部署 PersistentVolumeClaim 規格。

  4. 執行 kubectl get pvc,檢查 PersistentVolumeClaim 和 PersistentVolume 的繫結狀態。

  5. 重新部署 Pod 規格,並確認 Pod 能再次存取 Filestore 共用內容。

後續步驟