ディスクボリュームをContainer Service for Kubernetes (ACK) クラスターにマウントできます。 このトピックでは、ディスクボリュームに関連する機能、ディスク仕様、使用シナリオ、使用状況のメモ、課金ルール、およびStorageClassesについて説明します。
概要
Alibaba Cloudディスクは、Elastic Compute Service (ECS) のブロックレベルのデータストレージリソースであり、低レイテンシ、高性能、高耐久性、高信頼性を提供します。 分散三重メカニズムを使用して、ECSインスタンスのデータの信頼性を確保します。 ハードウェアエラーによりゾーン内でサービスの中断が発生した場合、ゾーン内のデータは別のゾーンの影響を受けていないディスクに自動的にレプリケートされ、データの可用性が確保されます。 詳細については、「ディスク」をご参照ください。
ESSD AutoPLディスク: ビジネス要件に基づいて、ESSD AutoPLディスクのバーストパフォーマンスとプロビジョニングされたパフォーマンスを構成できます。 ESSD AutoPLディスクは、拡張SSD (ESSD) の機能とパフォーマンスを継承し、ディスク容量をディスクパフォーマンスから切り離す機能を提供します。 詳細については、「ESSD AutoPLディスク」をご参照ください。
次のシナリオでは、ESSD AutoPLディスクを使用することを推奨します。
大規模オンライントランザクション処理 (OLTP) データベース、NoSQLデータベース、Elasticsearch、Logstash、Kibana (ELK) 分散ログなど、ESSDが適しているシナリオ。
ディスク容量を拡張せずにディスクパフォーマンスを向上させる必要があるシナリオ。
ビジネスワークロードが大幅に変動し、ワークロードのスパイクが発生したときにディスクのパフォーマンスをバーストする必要があるシナリオ。
ESSD: ESSDは、次世代の分散ブロックストレージアーキテクチャに基づいており、25ギガビットイーサネットとリモートダイレクトメモリアクセス (RDMA) を利用しています。 各ESSDは、一方向レイテンシが低く、最大1,000,000のランダムな読み取り /書き込みIOPSを提供できます。 詳細については、「ESSD」をご参照ください。
OLTPデータベース、NoSQLデータベース、ELK分散ログなどのシナリオでは、ESSDを使用することを推奨します。
標準 SSD:標準 SSDは、一貫した高いランダム IOPS と高いデータ信頼性を提供する高性能ディスクです。
I/O を多用するアプリケーション、中小規模のリレーショナルデータベース、NoSQL データベースなどのシナリオでは、標準 SSD の使用を推奨します。
ESSDエントリディスク: ESSDエントリディスクは、エンタープライズグレードの機能とデータ保護機能を提供します。 ESSD Entryディスクをシステムディスクとして、または開発やテストなどのシナリオで使用することを推奨します。
説明ESSDエントリディスクは、u1およびeインスタンスファミリーのインスタンスにのみ接続できます。 インスタンスファミリーの詳細については、「universal instance family」トピックのu1, Universal instance familyセクションおよび「Shared instance family」トピックのe, economy instance familyセクションをご参照ください。
Ultra ディスク:Ultra ディスクは費用効果が高く、中程度のランダム IOPS と高いデータ信頼性を提供します。 開発やテストなどのシナリオでは、ウルトラディスクをシステムディスクとして使用することを推奨します。
ベーシックディスク:ベーシックディスクは前世代のディスクのため、購入できません。
利用シナリオ
次の表に、ビジネス要件を満たすためにディスクで実行できる操作を示します。
ビジネス要件 | 関連ドキュメント |
アプリケーションデータの保存 | 詳細については、以下のトピックをご参照ください。 |
システムディスクまたはデータディスクのサイズ変更 | ディスク拡張の詳細については、「概要」をご参照ください。 詳細については、以下のトピックをご参照ください。 |
永続ストレージ | 詳細については、以下のトピックをご参照ください。 |
制限事項
-
ディスクタイプとECSインスタンスタイプの間には互換性の関係があります。 すべてのディスクをすべてのECSインスタンスにマウントできるわけではありません。
ポッドにスケジュールされたECSノードが、マウント対象のディスクタイプをサポートしていることを確認します。 互換性の詳細については、「インスタンスファミリー」をご参照ください。
課金
従量課金のクラウドディスクのみマウントすることができます。 クラスター内のECSインスタンスの課金方法を従量課金からサブスクリプションに変更する場合、マウントされたディスクの課金方法をサブスクリプションに変更することはできません。 それ以外の場合、ディスクはクラスターにマウントされません。 SCUを購入すると、ディスクコストを削減できます。 SCUの詳細については、「SCU」をご参照ください。
StorageClassesは無料です。 StorageClassesを使用して自動的に作成されるディスクは、従量課金制で課金されます。
請求可能なディスクの項目については、「ストレージデバイスのブロック」をご参照ください。 ディスクの料金の詳細については、ECSプロダクトページをご覧ください。
詳細については、「課金」をご参照ください。
StorageClasses
多数の永続ボリュームクレーム (PVC) を作成する場合は、多数の永続ボリューム (PV) も作成する必要があります。 これにより、O&Mエンジニアのワークロードが増加します。 この問題を解決するために、Kubernetesは自動PV作成を有効にするために使用できるStorageClassオブジェクトを提供します。
ACKクラスターは、次のタイプのStorageClassをサポートします。
StorageClass | 説明 | 推奨シナリオ |
alicloud-disk-efficiency | Ultra ディスク | シングルゾーン |
alicloud-disk-ssd | 標準 SSD | シングルゾーン |
alicloud-disk-essd | ESSD | シングルゾーン |
alicloud-disk-topology-alltype | 高可用性モードを提供します。 このモードでは、システムは最初にESSDの作成を試みます。
| マルチゾーン |
StorageClassを設定すると、ディスクが作成されるゾーンは次のルールによって決まります。
StorageClass構成でvolumeBindingMode: WaitForFirstConsumerを設定した場合、ポッドが展開されているゾーンにディスクが作成されます。
volumeBindingMode: Immediateを設定し、StorageClass構成のzoneIdパラメーターで1つのゾーンのみを指定した場合、指定したゾーンにディスクが作成されます。
volumeBindingMode: Immediateを設定し、StorageClass構成のzoneIdパラメーターで複数のゾーンを指定した場合、システムはラウンドロビン方式で指定されたゾーンにディスクを作成しようとします。
クラスターが複数のゾーンにデプロイされている場合は、StorageClass設定でvolumeBindingMode: WaitForFirstConsumerを指定することを推奨します。 必要なディスクの種類に基づいてStorageClassを作成できます。
デフォルトStorageClass
Kubernetesは、デフォルトのStorageClass機能を提供します。 PVCがStorageClassを指定しない場合、デフォルトのStorageClassを使用してPVCのPVをプロビジョニングします。 詳細については、「デフォルトのStorageClass」をご参照ください。
デフォルトのStorageClassは、すべてのPVCで有効になります。 クラスターで異なるストレージタイプのPVCが使用されている場合は、注意してください。 たとえば、NASファイルシステムを定義するPVC用のPVを作成する場合、デフォルトのStorageClassが代わりにディスクPVを自動的に作成します。 したがって、ACKクラスターはデフォルトのStorageClassesを提供しません。 デフォルトのStorageClassを設定する場合は、次の手順を実行します。
デフォルトのStorageClassは、クラスターごとに1つだけ設定できます。 クラスターに複数のデフォルトStorageClassを設定すると、すべてのデフォルトStorageClassesが無効になります。
次のコマンドを実行して、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デフォルトのStroageClassを使用します。
次のテンプレートを使用して、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"}}}'