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


使用 Google Kubernetes Engine (GKE) 時,Filestore CSI 驅動程式是使用 Filestore 執行個體的主要方式。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 執行個體。您可以透過 CSI 磁碟區快照 API 觸發 Filestore 備份,方法是在磁碟區快照類別中新增 type:backup 欄位。

  • 您可以使用 GKE Filestore CSI 驅動程式進行磁碟區擴充。擴充磁碟區容量可讓您調整磁碟區容量大小。

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

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

  • 支援基本 HDD 層級,容量下限為 100 GiB。

需求條件

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

    • 搭配 GKE 1.21 以上版本的基本 HDD
    • 基本傳統硬碟 (100 GiB 至 63.9 TiB),搭配 GKE 1.33 以上版本
    • 搭配 GKE 1.21 以上版本的 Basic SSD
    • 區域 (1 TiB 至 9.75 TiB),搭配 GKE 1.31 以上版本
    • 可用區 (10 TiB 至 100 TiB),搭配 GKE 1.27 以上版本
    • Enterprise 版 (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 驅動程式

如要在建立新的 Standard 叢集時啟用 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 或 Standard 叢集上停用 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. 取消勾選「啟用 Filestore CSI 驅動程式」核取方塊。

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

使用 Filestore CSI 驅動程式存取預先存在的 Filestore 執行個體

本節說明在 GKE 中,使用 Kubernetes 磁碟區透過 Filestore CSI 驅動程式存取現有 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 欄位。

接著,請建立會耗用磁碟區的 Deployment

使用 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。否則自動安裝的 StorageClass 將無法運作。

  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 參數。非預設虛擬私有雲需要設定特殊的防火牆規則
    • 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

下列範例資訊清單檔案會建立 PersistentVolumeClaim,該檔案會參照名為 filestore-exampleStorageClass

  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
    

建立會耗用磁碟區的 Deployment

下列 Deployment 資訊清單會使用名為 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 驅動程式支援 GKE 1.33 以上版本的 NFSv4.1 檔案系統通訊協定。如果是靜態佈建,請在 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 執行個體。

搭配 Filestore 磁碟區使用 fsgroup

Kubernetes 會使用 fsGroup 變更磁碟區的權限和擁有權,以符合 Pod SecurityContext 中使用者要求的 fsGroupfsGroup 是適用於 Pod 中所有容器的補充群組。 您可以將 fsgroup 套用至 Filestore CSI 驅動程式佈建的磁碟區。

設定 Filestore 磁碟區的 IP 存取規則

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

管理員可透過這項功能指定允許存取 Filestore 執行個體的 IP 位址範圍,這些執行個體是透過 GKE 動態佈建。這項功能可限制只有授權用戶端能存取,進而提升安全性,尤其是在 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 工作負載的共用檔案儲存空間權限設定。不過,如要瞭解 Google 雲端硬碟如何管理檔案擁有權和存取權,需要掌握幾個重要概念:

  • NFS 和使用者對應 NFS (網路檔案系統) 是 Filestore 使用的通訊協定。方法是將用戶端系統 (您的 GKE Pod) 的使用者對應至 Filestore 伺服器的使用者。如果伺服器上的檔案屬於使用者 ID 1003,且用戶端連線的使用者 ID 為 1003,則可存取該檔案。

  • 根壓縮和 anonUid

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

    • 無 Root 權限壓縮 (NO_ROOT_SQUASH):允許用戶端以完整的 Root 權限存取 Filestore 執行個體,方便進行初始設定,但對於一般作業而言安全性較低。

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

建議

  • 初始設定:請務必先建立至少一項 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:您先前建立的共用 VPC 網路名稱。
  • RESERVED_IP_RANGE_NAME:用於佈建 Filestore 執行個體的特定保留 IP 位址範圍名稱。這是選填欄位。如果指定保留的 IP 位址範圍,則必須是具名位址範圍,而非直接 CIDR 值。

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

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

如果您使用 Filestore 的基本 HDD、基本 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 共用資料夾。

後續步驟