全部產品
Search
文件中心

Container Service for Kubernetes:儲存類(StorageClass)

更新時間:Feb 28, 2024

本文為您介紹叢集預設提供的StorageClass儲存類型和適用情境,以及如何配置Default StorageClass儲存類型。

StorageClass

ACK Serverless叢集預設不提供StorageClass,您需要根據需求自行建立StorageClass。StorageClass模板如下。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-alltype
parameters:
  type: cloud_essd,cloud_ssd,cloud_efficiency
provisioner: diskplugin.csi.alibabacloud.com
reclaimPolicy: Delete
allowVolumeExpansion: true

該StorageClass會按照順序依次嘗試建立cloud_essd、cloud_ssd、cloud_efficiency類型的雲端硬碟。如果當前可用性區域不支援cloud_essd,則會嘗試建立cloud_ssd,依此類推。您可以調整類型和順序來自訂建立的雲端硬碟類型。

Default StorageClass

Kubernetes提供Default StorageClass機制,您在PVC不指定StorageClass的情況下,可以通過Default StorageClass建立資料卷,請參見Default StorageClass

說明
  • 由於Default StorageClass會對所有PVC起作用,對於具備不同類型儲存卷能力的叢集,需要小心使用。例如,您想產生一個NAS類型PVC、PV,並綁定PVC和PV,但可能因為有Default StorageClass而自動建立了雲端硬碟PV。基於上述原因,ACK Serverless叢集沒有提供Default StorageClass,如果您期望使用Default StorageClass,可以參考以下配置。

  • 一個叢集中最多配置一個Default StorageClass,否則預設能力將不起作用。

  1. 配置Default StorageClass。

    執行以下命令將StorageClass (alicloud-disk-ssd)配置為一個Default StorageClass。

    kubectl patch storageclass alicloud-disk-ssd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

    這時查詢叢集中的StorageClass可以看到alicloud-disk-ssd名字後面加了(default)字樣。

    kubectl get sc

    返回結果如下:

    NAME                          PROVISIONER                       AGE
    alicloud-disk-ssd (default)   diskplugin.csi.alibabacloud.com   96m
  2. 使用Default StorageClass。

    1. 使用以下模板建立一個沒有配置StorageClass的PVC。

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: disk-pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 20Gi

      叢集會自動建立一個雲端硬碟卷(PV),且配置了Default StorageClass(alicloud-disk-ssd)。

      kubectl get pvc

      返回結果如下:

      NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS        AGE
      disk-pvc   Bound    d-bp18pbai447qverm3ttq   20Gi       RWO            alicloud-disk-ssd   49s

後續步驟

您可以通過以下命令取消預設儲存類型配置。
kubectl patch storageclass alicloud-disk-ssd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'