全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:存储类(StorageClass)

更新时间:Nov 27, 2023

本文为您介绍集群默认提供的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"}}}'