全部產品
Search
文件中心

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

更新時間:Nov 15, 2024

ACK支援在1.16及以上版本的叢集中實現CSI雲端硬碟線上擴容。本文介紹應用線上時如何動態擴容雲端硬碟,從而增加雲端硬碟空間。

使用說明

  • 資料備份

    擴容儲存卷前,請先備份雲端硬碟快照,以防擴容過程異常導致資料出現問題。

  • 適用範圍

    • 只有動態儲存裝置卷才可以進行儲存捲動態擴容,即配置了StorageClassName的PVC。

    • 不支援擴容InlineVolume類型(非PV、PVC方式)的雲端硬碟儲存卷。

    • 不支援動態擴容普通雲端硬碟類型。

    • StorageClass需要配置為AllowVolumeExpansion: True。ACK叢集預設提供的StorageClass為True,自建的StorageClass需要自行配置。

    • 應用Pod需處於Running狀態。

  • 外掛程式版本

    升級您使用的CSI外掛程式到最新版本。

為RAM使用者添加ResizeDisk許可權

實現雲端硬碟線上擴容前,您需要為叢集的RAM角色添加ResizeDisk許可權。針對不同叢集和外掛程式類型,添加ResizeDisk許可權的步驟如下:

ACK專有叢集(CSI外掛程式)

  1. 登入Container Service管理主控台

  2. 在控制台左側導覽列中,單擊叢集

  3. 叢集列表頁面,選中目的地組群,並在目的地組群右側操作列下,單擊詳情

  4. 在叢集管理頁左側導覽列中,單擊叢集資訊

  5. 單擊叢集資源頁簽,單擊Master RAM角色連結。

  6. 在RAM控制台中,添加ResizeDisk許可權。添加許可權具體步驟,請參見改自訂權限原則內容和備忘resizedisk

ACK專有叢集(Flexvolume外掛程式)、ACK託管叢集(所有外掛程式類型)

重複上述前4個步驟,然後在叢集管理頁面單擊Worker RAM 角色連結。

不重啟容器實現線上擴容

  1. 使用命令列工具串連ACK叢集,請參見步驟二:選擇叢集憑證類型

    本文假設應用的目前狀態如下。

    執行以下命令擷取Pod資訊。

    kubectl get pod

    預期輸出:

    <YOUR-POD-NAME>         1/1     Running   0          42s

    執行以下命令查看Pod的掛載詳情。

    kubectl exec <YOUR-POD-NAME>  -- df /data

    預期輸出:

    Filesystem     1K-blocks  Used   Available Use% Mounted on
    /dev/vdb       20511312   45080  20449848  1%   /data

    執行以下命令擷取PVC資訊。

    kubectl get pvc

    預期輸出:

    NAME              STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     AGE
    <your-PVC-name>   Bound    d-wz9hpoifm43yn9zi****   20Gi       RWO            alicloud-disk-topology-alltype   57s

    執行以下命令擷取PV資訊。

    kubectl get pv

    預期輸出:

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                     STORAGECLASS                     REASON   AGE
    d-wz9hpoifm43yn9zi****   20Gi       RWO            Delete           Bound      default/<your-PVC-name>   alicloud-disk-topology-alltype            65s
  2. 在符合使用說明的各個條件下,執行以下命令進行儲存卷擴容。

    kubectl patch pvc <your-PVC-name> -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'

    等待一定時間(一分鐘以內)後擴容完成,檢查狀態如下。

    執行以下命令查看PV資訊。

    kubectl get pv d-wz9hpoifm43yn9zi****

    預期輸出:

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                    STORAGECLASS                     REASON   AGE
    d-wz9hpoifm43yn9zi****   30Gi       RWO            Delete           Bound    default/<your-PVC-name>   alicloud-disk-topology-alltype           5m23s

    執行以下命令查看PVC資訊。

    kubectl get pvc

    預期輸出:

    NAME             STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     AGE
    <your-PVC-name>   Bound    d-wz9hpoifm43yn9zi****   30Gi       RWO           alicloud-disk-topology-alltype   5m10s

    執行以下命令查看Pod的掛載詳情。

    kubectl exec <YOUR-POD-NAME> -- df /data

    預期輸出:

    Filesystem     1K-blocks  Used   Available  Use%  Mounted on
    /dev/vdb       30832548   45036  30771128   1%    /data

    您只需要執行一條命令即可完成所有的擴容操作。

相關文檔

如需在儲存卷的使用率高於某個閾值時自動擴容儲存卷,請參見自動擴容雲端硬碟儲存卷(公測)