このトピックでは、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が無効になります。
デフォルトの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
デフォルトのStorageClassを使用します。
次のテンプレートを使用して、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" }}}'