すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:StorageClasses

最終更新日:Dec 14, 2024

このトピックでは、Container Service for Kubernetes (ACK) サーバーレスクラスターのさまざまな種類のStorageClassについて説明します。 このトピックでは、ビジネス要件を満たす適切なStorageClass型を選択する方法と、デフォルトのStorageClassを構成する方法についても説明します。

StorageClass

デフォルトでは、ACKサーバーレスクラスターはStorageClassesを提供しません。 ビジネス要件に基づいてStorageClassesを作成できます。 次のコードブロックは、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ディスクとcloud_efficiencyディスクを順番に作成しようとします。 必要に応じて、テンプレート内のディスクタイプとその順序を調整できます。

デフォルトStorageClass

Kubernetesは、デフォルトのStorageClass機能を提供します。 永続ボリュームクレーム (PVC) にStorageClassが指定されていない場合は、既定のStorageClassを使用してPVCの永続ボリューム (PV) をプロビジョニングします。 詳細については、「デフォルトのStorageClass」をご参照ください。

説明
  • デフォルトのStorageClassは、すべてのPVCで有効になります。 クラスターで異なるストレージタイプのPVCが使用されている場合は、注意してください。 例えば、デフォルトのStorageClassは、Apsara File Storage NAS (NAS) ファイルシステムを定義するPVC用のディスクPVを作成することができる。 このような状況を回避するため、ACKサーバーレスクラスターはデフォルトのStorageClass機能をサポートしていません。 デフォルトのStorageClassを設定するには、次の手順を実行します。

  • デフォルトのStorageClassは、クラスターごとに1つだけ設定できます。 クラスターに複数のデフォルトStorageClassを設定すると、すべてのデフォルトStorageClassesが無効になります。

  1. デフォルトのStorageClassを設定します。

    次のコマンドを実行して、alicloud-disk-ssdをデフォルトのStorageClassとして設定します。

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

    デフォルトのStorageClassが設定されると、alicloud-disk-ssd(デフォルト) としてマークされます。

    kubectl get sc

    期待される出力:

    NAME                          PROVISIONER                       AGE
    alicloud-disk-ssd (default)   diskplugin.csi.alibabacloud.com   96m
  2. デフォルトのStorageClassを使用します。

    1. 次のテンプレートを使用して、StorageClassを指定しないPVCを作成します。

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

      クラスターは、デフォルトのStorageClass alicloud-disk-ssdに基づいてディスクPVを自動的に作成します。

      kubectl get pvc

      期待される出力:

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

次のステップ

次のコマンドを実行して、デフォルトのStorageClassを無効にすることもできます。

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