您可以使用 Kubernetes 磁碟區擴充功能在建立持續性區塊磁碟區後對其進行擴充。TKG 服務 叢集支援離線和線上磁碟區擴充。

關於持續性磁碟區擴充

依預設,TKG 叢集環境中顯示的儲存區類別會將 allowVolumeExpansion 設定為 true。透過此參數,可以修改離線或線上磁碟區的大小。

當磁碟區未連結至節點或網繭時,會被視為離線。線上磁碟區是節點或網繭上可用的磁碟區。

磁碟區擴充功能的支援層級取決於 vSphere 版本。將 vSphere 環境升級至支援擴充的適當版本時,可以擴充在舊版 vSphere 中建立的磁碟區。

備註: 只能擴充持續性區塊磁碟區。目前, vSphere IaaS control plane 不支援對 ReadWriteMany 磁碟區進行磁碟區擴充。
擴充持續性區塊磁碟區時,請注意以下事項:
  • 您可將磁碟區最多擴充至由儲存區配額指定的限制。vSphere IaaS control plane 支援持續性磁碟區宣告物件的連續調整大小要求。
  • 所有類型的資料存放區 (包括 VMFS、vSAN、vSAN Direct、vVols 和 NFS) 均支援磁碟區擴充。
  • 您可以針對部署或獨立網繭執行磁碟區擴充。
  • 如果磁碟區具有相關聯的儲存區類別,則可以在 Tanzu Kubernetes Grid 叢集中調整靜態佈建的磁碟區大小。
  • 您無法擴充做為 StatefulSet 一部分建立的磁碟區。
  • 如果支援磁碟區之虛擬磁碟具有快照,將無法調整大小。
  • vSphere IaaS control plane 不支援針對樹狀結構內或移轉的磁碟區進行磁碟區擴充。

在線上模式下擴充持續性磁碟區

線上磁碟區是節點或網繭上可用的磁碟區。做為 DevOps 工程師,您可以擴充線上持續性區塊磁碟區。Tanzu Kubernetes Grid 叢集支援線上磁碟區擴充。

  1. 使用以下命令尋找要調整大小的持續性磁碟區宣告。

    請注意,在此範例中,該磁碟區使用的儲存區大小為 1 Gi。

    $ kubectl get pv,pvc,pod
    NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM               STORAGECLASS   REASON   AGE
    persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   1Gi        RWO            Delete           Bound       default/block-pvc   block-sc                4m56s
     
    NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    persistentvolumeclaim/block-pvc   Bound    pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   1Gi        RWO            block-sc       5m3s
     
    NAME            READY   STATUS    RESTARTS   AGE
    pod/block-pod   1/1     Running   0          26s
  2. 修補 PVC 以增加其大小。例如,將大小增加到 2 Gi。
    此動作會在與 PVC 相關聯的磁碟區中觸發擴充。
    $ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    persistentvolumeclaim/block-pvc edited
  3. 確認 PVC 和 PV 的大小均已增加。
    $ kubectl get pvc,pv,pod
    NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    persistentvolumeclaim/block-pvc   Bound    pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   2Gi        RWO            block-sc       6m18s
     
    NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM               STORAGECLASS   REASON   AGE
    persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   2Gi        RWO            Delete           Bound       default/block-pvc   block-sc                6m11s
     
    NAME            READY   STATUS    RESTARTS   AGE
    pod/block-pod   1/1     Running   0          101s
  4. 使用 vSphere Client 驗證新的持續性磁碟區大小。

    請參閱監控 Tanzu Kubernetes Grid 叢集中的磁碟區健全狀況

在離線模式下擴充持續性磁碟區

當磁碟區未連結至節點或網繭時,會被視為離線。Tanzu Kubernetes Grid 叢集支援離線磁碟區擴充。

  1. 為現有儲存區類別建立持續性磁碟區宣告 (PVC)。
    在此範例中,請求的儲存區大小為 1 Gi。
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: example-block-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: example-block-sc
    kubectl apply -f example-block-pvc.yaml 
  2. 修補 PVC 以增加其大小。

    如果 PVC 未連結至節點或正由網繭使用,請使用下列命令來修補 PVC。在此範例中,請求的儲存區增加量為 2 Gi。

    此動作會在與 PVC 相關聯的磁碟區中觸發擴充。
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
  3. 確認磁碟區的大小已增加。
    kubectl get pv
    NAME                                       CAPACITY ACCESS MODES RECLAIM POLICY STATUS   CLAIM                       STORAGECLASS           REASON AGE
    pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1   2Gi           RWO         Delete     Bound    default/example-block-pvc   example-block-sc              6m44s
  4. 驗證 PVC 的大小調整是否處於擱置中狀態。
    備註: 在網繭使用 PVC 之前,PVC 的大小保持不變。
    以下範例顯示 PVC 大小未變更,因為該 PVC 尚未由網繭使用。如果執行 kubectl describe pvc,您會看到已對 PVC 套用 FilesystemResizePending 條件。該 PVC 由網繭使用後,其大小將會變更。
    kubectl get pvc
    NAME                STATUS VOLUME                                     CAPACITY ACCESS MODES   STORAGECLASS       AGE
    example-block-pvc   Bound  pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1   1Gi           RWO       example-block-sc   6m57s
  5. 建立網繭以使用 PVC。

    當網繭使用 PVC 時,檔案系統即已擴充。

  6. 確認已修改 PVC 的大小。
    kubectl get pvc
    NAME                STATUS VOLUME                                    CAPACITY ACCESS MODES STORAGECLASS     AGE
    example-block-pvc   Bound  pvc-24114458-9753-428e-9c90-9f568cb25788   2Gi         RWO      example-block-sc 2m12s
    FilesystemResizePending 條件已從 PVC 中移除。磁碟區擴充已完成。
  7. 使用 vSphere Client 驗證新的持續性磁碟區大小。

    請參閱監控 Tanzu Kubernetes Grid 叢集中的磁碟區健全狀況