全部產品
Search
文件中心

Container Service for Kubernetes:線上擴容雲端硬碟儲存卷

更新時間:Feb 20, 2025

當雲端硬碟儲存卷的使用空間不足時,您可以擴容雲端硬碟容量以增加儲存空間。ACK支援在1.16及以上版本的叢集中實現CSI雲端硬碟儲存卷的線上擴容。本文介紹如何線上擴容雲端硬碟儲存卷。

適用範圍

本文通過更新PVC的儲存容量聲明實現擴容雲端硬碟儲存卷。該方式適用範圍如下:

  • 雲端硬碟對應的PV所綁定的PVC關聯了StorageClass,並且StorageClass中已配置allowVolumeExpansion: true

    說明

    ACK預設提供的StorageClass已配置allowVolumeExpansion: true,您自行建立的StorageClass需要自行配置。StorageClass不支援修改屬性,只能建立。

  • 雲端硬碟掛載的應用Pod需處於Running狀態。

  • 如果雲端硬碟類型為普通雲端硬碟,則不支援使用該方式擴容。

  • 如果叢集版本低於1.16,則不支援使用該方式擴容。如需升級叢集,請參見升級叢集

  • 該方式依賴雲端硬碟的Resize能力。更多資訊,請參見ResizeDisk

準備工作

  • 為雲端硬碟建立快照。

    重要

    為避免擴容過程中的誤操作導致資料丟失,建議提前為雲端硬碟建立快照,做好資料備份。完成擴容後,您可以刪除快照,避免快照持續計費。具體操作,請參見使用雲端硬碟快照

  • 如果您的叢集是ACK專有叢集,為叢集的RAM角色添加ResizeDisk許可權。

    說明

    如果是ACK託管叢集,無需進行授權操作。

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

    2. 叢集列表頁面左側頂部,選擇目的地組群所在的資源群組和地區,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊

    3. 單擊基本資料頁簽,在叢集資源地區找到Master RAM 角色並單擊角色連結。

    4. 在RAM控制台的角色頁面,添加ResizeDisk許可權。

      添加許可權具體步驟,請參見修改自訂權限原則內容和備忘resizedisk

操作步驟

在已有應用掛載動態雲端硬碟儲存卷的情況下,您可以通過更新PVC儲存容量聲明的方式,在不暫停Pod的同時,線上擴容雲端硬碟儲存卷。

說明

下文以使用雲端硬碟動態儲存裝置卷中建立的應用為例,進行雲端硬碟儲存卷擴容。

kubectl

  1. 串連叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集在CloudShell上通過kubectl管理Kubernetes叢集

  2. 查看擴容前Pod和雲端硬碟資訊,以及對應的PVC和StorageClass。

    1. 查看雲端硬碟掛載的Pod的資訊,確認Pod處於Running狀態。

      kubectl get pod -l app=nginx

      返回樣本如下:

      NAME          READY   STATUS    RESTARTS   AGE
      disk-test-0   1/1     Running   0          23h
    2. 查看雲端硬碟掛載目錄的磁碟空間使用方式。

      kubectl exec disk-test-0 -- df -h /data

      返回樣本如下:

      Filesystem      Size  Used Avail Use% Mounted on
      /dev/vdb         20G   24K   20G   1% /data
    3. 查看PVC。

      kubectl get pvc

      返回樣本如下,PVC名稱為dik-pvc,該PVC綁定的雲端硬碟ID為d-uf6axyb1er071h6o****,容量為20 GiB。PVC關聯的StorageClass為alicloud-disk-wait-for-first-consumer

      重要

      如果是靜態儲存卷,需確認PVC中storageClassName的配置不為空白,並且叢集中存在同名的StorageClass。如果沒有,請根據已有雲端硬碟儲存卷的屬性建立對應的StorageClass並配置allowVolumeExpansion: true

      NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
      disk-pvc   Bound    d-uf6axyb1er071h6o****   20Gi       RWO            alicloud-disk-wait-for-first-consumer   <unset>                 23h
    4. 查看StorageClass,確認已開啟擴容。

      kubectl get sc alicloud-disk-wait-for-first-consumer -o yaml

      預期返回如下,allowVolumeExpansion: true表示已開啟擴容。

      allowVolumeExpansion: true
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        creationTimestamp: "2025-01-21T08:48:26Z"
        name: alicloud-disk-wait-for-first-consumer
        resourceVersion: "59936"
        uid: 5bdb798e-5888-40df-9f91-259ee8510f34
      parameters:
        type: cloud_auto,cloud_essd,cloud_ssd
      provisioner: diskplugin.csi.alibabacloud.com
      reclaimPolicy: Retain
      volumeBindingMode: WaitForFirstConsumer
  3. 修改PVC,擴容雲端硬碟容量。

    假設雲端硬碟容量要擴容到30 GiB,命令樣本如下:

    kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  4. 等待一段時間(一分鐘內)後,確認雲端硬碟是否擴容成功。

    1. 查看PVC。

      kubectl get pvc

      返回樣本如下,可以看到雲端硬碟容量已擴容到30 GiB。

      NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
      disk-pvc   Bound    d-uf6axyb1er071h6o****   30Gi       RWO            alicloud-disk-wait-for-first-consumer   <unset>                 23h
    2. 查看雲端硬碟掛載目錄的磁碟空間使用方式。

      kubectl exec disk-test-0 -- df -h /data

      返回樣本如下,可以看到已擴容成功。

      Filesystem      Size  Used Avail Use% Mounted on
      /dev/vdb         30G   24K   30G   1% /data

控制台

說明

控制台操作僅支援動態儲存裝置卷,如果是靜態儲存卷,請參考kubectl操作。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,進入叢集管理頁。

  3. 確認雲端硬碟掛載的Pod處於Running狀態,並查看Pod使用的PVC。

    1. 在叢集管理頁的左側導覽列,選擇工作負載 > 有狀態

    2. 單擊目標應用程式名稱,然後在容器組頁簽下,確認Pod處於Running狀態。

      擴容-容器組

    3. 單擊Pod名稱,然後在儲存頁簽下,查看Pod使用的PVC。

      擴容-pvc

  4. 查看StorageClass,確認已開啟擴容。

    1. 在叢集管理頁的左側導覽列,選擇儲存 > 儲存類

    2. 找到雲端硬碟儲存卷使用的StorageClass,單擊查看Yaml

    3. 確認已配置allowVolumeExpansion: true

      擴容的SC

  5. 修改PVC的儲存容量聲明,擴容雲端硬碟容量。

    1. 在叢集管理頁的左側導覽列,選擇儲存 > 儲存聲明

    2. 找到目標PVC,單擊擴容

    3. 在彈出的對話方塊中,輸入要擴容到的容量,選中注意事項,然後單擊確定

      線上擴容

    4. 等待擴容完成,確認PVC的總量已擴容。

相關文檔