您可以使用 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 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
- 修補 PVC 以增加其大小。例如,將大小增加到 2 Gi。
此動作會在與 PVC 相關聯的磁碟區中觸發擴充。
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- 確認 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 Client 驗證新的持續性磁碟區大小。
在離線模式下擴充持續性磁碟區
當磁碟區未連結至節點或網繭時,會被視為離線。Tanzu Kubernetes Grid 叢集支援離線磁碟區擴充。
- 為現有儲存區類別建立持續性磁碟區宣告 (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
- 修補 PVC 以增加其大小。
如果 PVC 未連結至節點或正由網繭使用,請使用下列命令來修補 PVC。在此範例中,請求的儲存區增加量為 2 Gi。
此動作會在與 PVC 相關聯的磁碟區中觸發擴充。kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- 確認磁碟區的大小已增加。
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 尚未由網繭使用。如果執行
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
- 建立網繭以使用 PVC。
當網繭使用 PVC 時,檔案系統即已擴充。
- 確認已修改 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 Client 驗證新的持續性磁碟區大小。