身為 DevOps 工程師,您可以在建立持續性區塊磁碟區後擴充該磁碟區。在 vSphere IaaS control plane 中,主管Tanzu Kubernetes Grid 這兩種類型的叢集都支援離線和線上磁碟區擴充。

備註: 只能擴充持續性區塊磁碟區。目前, vSphere IaaS control plane 不支援對 ReadWriteMany 磁碟區進行磁碟區擴充。

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

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

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

擴充磁碟區時,請記住下列幾點:
  • 您可將磁碟區最多擴充至由儲存區配額指定的限制。vSphere IaaS control plane 支援持續性磁碟區宣告物件的連續調整大小要求。
  • 所有類型的資料存放區 (包括 VMFS、vSAN、vSAN Direct、vVols 和 NFS) 均支援磁碟區擴充。
  • 您可以針對部署或獨立網繭執行磁碟區擴充。
  • 如果磁碟區具有相關聯的儲存區類別,則您可以在 主管Tanzu Kubernetes Grid 叢集中調整靜態佈建的磁碟區大小。
  • 使用 StatefulSet 定義時,無法擴充作為 StatefulSet 的一部分建立的磁碟區。目前 Kubernetes 不支援此功能。因此,嘗試透過增加 StatefulSet 定義中的儲存區大小來擴充磁碟區會失敗。
  • 如果支援磁碟區之虛擬磁碟具有快照,將無法調整大小。
  • vSphere IaaS control plane 不支援針對樹狀結構內或移轉的磁碟區進行磁碟區擴充。

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

當磁碟區未連結至節點或網繭時,會被視為離線。主管Tanzu Kubernetes Grid 叢集等兩種類型的叢集均支援離線磁碟區擴充。

必要條件

確保將 vSphere 環境升級至支援離線磁碟區擴充的適當版本。

程序

  1. 使用儲存區類別建立持續性磁碟區宣告 (PVC)。
    1. 使用下列 YAML 資訊清單作為範例來定義 PVC。
      在此範例中,請求的儲存區大小為 1 Gi。
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: example-block-pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: example-block-sc
    2. 將 PVC 套用至 Kubernetes 叢集。
      kubectl apply -f example-block-pvc.yaml 
  2. 修補 PVC 以增加其大小。
    如果 PVC 未連結至節點或正由網繭使用,請使用下列命令來修補 PVC。在此範例中,請求的儲存區增加量為 2 Gi。
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    此動作會在與 PVC 相關聯的磁碟區中觸發擴充。
  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
    備註: 在網繭使用 PVC 之前,PVC 的大小保持不變。
    下列範例顯示 PVC 大小未變更。如果您要描述 PVC,則可以查看 PVC 上套用的 FilesystemResizePending 條件。
    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
  4. 建立網繭以使用 PVC。
    當網繭使用 PVC 時,檔案系統即已擴充。
  5. 確認已修改 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 中移除。磁碟區擴充已完成。

下一步

vSphere 管理員可在 vSphere Client 中查看新磁碟區大小。請參閱 在 vSphere Client 中監控持續性磁碟區

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

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

必要條件

確保將 vSphere 環境升級至支援線上磁碟區擴充的適當版本。

程序

  1. 尋找持續性磁碟區宣告,以重新調整大小。
    $ 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

    請注意,磁碟區使用的儲存區大小為 1 Gi。

  2. 修補 PVC 以增加其大小。
    例如,將大小增加到 2 Gi。
    $ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    persistentvolumeclaim/block-pvc edited
    此動作會在與 PVC 相關聯的磁碟區中觸發擴充。
  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

下一步

vSphere 管理員可在 vSphere Client 中查看新磁碟區大小。請參閱 在 vSphere Client 中監控持續性磁碟區