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

Container Service for Kubernetes:動的にプロビジョニングされたディスクボリュームを使用する

最終更新日:Apr 15, 2025

Alibaba Cloud ディスクは、Elastic Compute Service (ECS) のブロックレベルのデータストレージリソースです。Alibaba Cloud ディスクは、低レイテンシ、高パフォーマンス、高耐久性、高信頼性を提供します。ACK Serverless では、Container Storage Interface (CSI) プラグインを使用して、動的にプロビジョニングされたディスクボリュームを作成できます。このトピックでは、動的にプロビジョニングされたディスクボリュームを使用する方法と、動的にプロビジョニングされたディスクボリュームを永続ストレージに使用できることを確認する方法について説明します。

シナリオ

ディスクは、以下のシナリオに適しています。

  • 高いディスク I/O スループットを必要とし、データ共有を必要としないアプリケーションを作成する場合。アプリケーションは MySQL や Redis などのストレージサービスを使用できます。

  • ログを高速で書き込みたい場合。

  • ポッドのライフサイクルとは無関係にデータを永続化したい場合。

既存のディスクに基づく静的ボリュームプロビジョニングに加えて、Kubernetes は StorageClasses に基づく動的ボリュームプロビジョニングをサポートしています。動的プロビジョニングを使用すると、ストレージリソースを動的に作成および割り当てることができます。StorageClass を永続ボリューム要求 (PVC) に関連付けると、システムは PVC と StorageClass の構成に基づいて永続ボリューム (PV) を自動的に作成してバインドします。動的プロビジョニングは、アプリケーションのストレージ要件を満たすために、ストレージリソースの作成と構成を自動化します。動的プロビジョニングは、ストレージインフラストラクチャのオーケストレーションの複雑さも軽減します。

Serverless Kubernetes クラスターは、デフォルトの StorageClasses を提供しません。ビジネス要件に基づいて、Serverless Kubernetes クラスターに StorageClasses を手動で作成する必要があります。

説明

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

前提条件

手順

ACK コンソール

手順 1: StorageClass を作成する

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、[ボリューム] > [StorageClasses] を選択します。

  3. [StorageClasses] ページの右上隅にある [作成] をクリックします。

  4. [作成] ダイアログボックスで、パラメーターを構成します。

    次の表にパラメーターを示します。

    パラメーター

    説明

    名前

    StorageClass の名前。名前は、ACK コンソールに表示される形式の要件に従う必要があります。

    PV タイプ

    永続ボリューム (PV) のタイプ。[クラウドディスク] を選択します。

    パラメーター

    デフォルトでは、type パラメーターが追加され、cloud_essd に設定されます。type パラメーターは、ディスクカテゴリを指定します。有効な type パラメーターの値:

    • cloud_essd: 企業向け SSD (ESSD)。

    • cloud_regional_disk_auto: リージョナル ESSD

    • elastic_ephemeral_disk_premium: プレミアムエラスティック一時ディスク。

    • elastic_ephemeral_disk_standard: 標準エラスティック一時ディスク。

    • cloud_ssd: 標準 SSD。

    • cloud_efficiency: Ultra ディスク。

    上記の値の任意の組み合わせに type パラメーターを設定できます。たとえば、type: cloud_ssd,cloud_essd を指定できます。この場合、システムはカテゴリの指定された順序でディスクの作成を試みます。ディスクが作成されると、システムは試行を停止します。

    説明

    特定の ECS インスタンスタイプは、ESSD またはエラスティック一時ディスクをサポートしていません。詳細については、「Elastic Block Storage に関するよくある質問」をご参照ください。

    カスタムパラメーターを追加できます。たとえば、zoneId パラメーターを追加して、ディスクを作成するゾーンの ID を指定できます。クラスターがシングルゾーンにデプロイされている場合は、値をゾーンの ID に設定します。例: cn-beijing-a。クラスターがゾーンをまたいでデプロイされている場合は、ビジネス要件に基づいて zoneId パラメーターを複数のゾーン ID に設定できます。例: cn-beijing-a, cn-beijing-b

    再利用ポリシー

    ディスクの再利用ポリシー。デフォルト値: 削除。パラメーターを 保持 に設定することもできます。

    • 削除モード: PVC が削除されると、関連する PV とディスクも削除されます。

    • 保持モード: PVC が削除されると、関連する PV とディスクは保持されます。PV とディスクデータは手動でのみ削除できます。

    より高いデータセキュリティが必要な場合は、データが誤って削除されないように、保持モードを使用することをお勧めします。

    バインディングモード

    ボリュームバインディングモード。デフォルト値: 即時。これは、ポッドを作成する前にシステムがディスクを作成することを指定します。

  5. パラメーターを構成した後、[作成] をクリックします。

    StorageClass が作成されると、[StorageClasses] ページで StorageClass を表示できます。

手順 2: PVC を作成する

  1. 詳細ページの左側のナビゲーションウィンドウで、[ボリューム] > [永続ボリューム要求] を選択します。

  2. [永続ボリューム要求] ページの右上隅にある [作成] をクリックします。

  3. [PVC の作成] ダイアログボックスで、次のパラメーターを設定します。

    パラメーター

    説明

    PVC タイプ

    PVC のタイプ。パラメーターをクラウドディスクまたは NAS に設定できます。この例では、このパラメーターは クラウドディスク に設定されています。

    名前

    PVC の名前。名前は、名前空間内で一意である必要があります。

    割り当てモード

    この例では、[StorageClass を使用する] が選択されています。

    既存の StorageClass

    [選択] をクリックします。[StorageClass の選択] ダイアログボックスで、使用する StorageClass を見つけ、[アクション] 列の [選択] をクリックします。

    容量

    PVC によって要求される容量。

    アクセスモード

    PVC を使用してプロビジョニングされた PV のアクセスモード。デフォルト値: ReadWriteOnce

  4. [作成] をクリックします。

    PVC が作成されると、[永続ボリューム要求] ページで PVC を表示できます。PVC は PV にバインドされています。

手順 3: アプリケーションを作成する

  1. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [StatefulSets] を選択します。

  2. [StatefulSets] ページの右上隅にある [イメージから作成] をクリックします。

  3. アプリケーションパラメーターを構成します。
    この例では、ボリュームパラメーターを構成する方法を示します。その他のパラメーターの詳細については、「StatefulSet を使用してステートフルアプリケーションを作成する」をご参照ください。

    ACK クラスターのローカルストレージボリュームとクラウドストレージボリュームを構成できます。この例では、[クラウドストレージ] が選択されています。

    この例で作成されたディスクボリュームを、コンテナーの /tmp パスにマウントします。ディスクボリュームがマウントされると、/tmp パスに生成されたコンテナーデータはディスクボリュームに保存されます。volume
  4. その他のパラメーターを構成し、[作成] をクリックします。
    アプリケーションが作成されると、ボリュームを使用してアプリケーションデータを保存できます。

kubectl

手順 1: StorageClass を作成する

マルチゾーンクラスターでは、最初にクラウドディスクを作成し、次にポッドを作成することで、StorageClass を作成できます。

  1. 次のテンプレートを使用して、storage-class-csi.yaml という名前のファイルを作成します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-ssd-b
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      type: cloud_essd,cloud_ssd,cloud_efficiency
      encrypted: "false"
    reclaimPolicy: Retain
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    パラメーター

    説明

    provisioner

    値を diskplugin.csi.alibabacloud.com に設定します。この値は、Alibaba Cloud ディスクのプロビジョナープラグインを使用して StorageClass を作成することを指定します。

    type

    このパラメーターは、ディスクカテゴリを指定します。有効な値:

    • cloud_auto: ESSD AutoPL ディスク。

    • cloud_essd: ESSD。これがデフォルト値です。

    • cloud_essd_entry: ESSD Entry ディスク。

    • cloud_ssd: 標準 SSD。

    • cloud_efficiency: Ultra ディスク。

    • elastic_ephemeral_disk_standard: 標準エラスティック一時ディスク。

    • elastic_ephemeral_disk_premium: プレミアムエラスティック一時ディスク。

    • cloud_regional_disk_auto: リージョナル ESSD。

    このパラメーターを上記の値の任意の組み合わせに設定できます。たとえば、このパラメーターを type: cloud_ssd,cloud_essd,cloud_auto に設定できます。この場合、システムはカテゴリの指定された順序でディスクの作成を試みます。ディスクが作成されると、システムは試行を停止します。

    重要

    クラスター内のノードのゾーンとインスタンスタイプ、およびディスクの課金とパフォーマンスの要件に基づいて、ディスクカテゴリを指定できます。詳細については、以下のトピックを参照してください。

    encrypted

    オプション。このパラメーターは、ディスクが暗号化されているかどうかを指定します。デフォルト値は false で、ディスクが暗号化されていないことを示します。

    reclaimPolicy

    ディスクの再利用ポリシー。デフォルトでは、このパラメーターは 削除 に設定されています。このパラメーターを 保持 に設定することもできます。

    • 削除モード: PVC が削除されると、関連する PV とディスクも削除されます。

    • 保持モード: PVC が削除されると、関連する PV とディスクは保持されます。PV とディスクデータは手動でのみ削除できます。

    高いデータセキュリティが必要な場合は、データが誤って削除されないように 保持 モードを使用することをお勧めします。

    allowVolumeExpansion

    このパラメーターを true に設定すると、ディスクを自動的に拡張できます。

    volumeBindingMode

    ボリュームバインディングモード。デフォルト値: 即時。これは、ポッドを作成する前にシステムがディスクを作成することを指定します。

  2. 次のコマンドを実行して、StorageClass を作成します。

    kubectl apply -f storage-class-csi.yaml
  3. 作成された StorageClass を表示します。

    1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、[ボリューム] > [StorageClasses] を選択します。

    3. StorageClass が作成されると、[StorageClasses] ページで StorageClass を表示できます。

手順 2: PVC を作成する

  1. 次のテンプレートを使用して、pvc-ssd.yaml という名前のファイルを作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 25Gi
      storageClassName: alicloud-disk-ssd-b

    パラメーター

    説明

    name

    PVC の名前。

    accessModes

    PVC を使用してプロビジョニングされた PV のアクセスモード。

    volumeMode

    オプション。ディスクがマウントされる形式。ファイルシステム がサポートされています。

    storageClassName

    PVC に関連付ける StorageClass の名前。

    storage

    PVC によって要求されるディスクサイズ。最小容量は 20 GiB です。

  2. 次のコマンドを実行して、PVC を作成します。

    kubectl create -f pvc-ssd.yaml
  3. 作成された PVC を表示します。

    クラスター詳細ページの左側のナビゲーションウィンドウで、[ボリューム] > [永続ボリューム要求] を選択します。[永続ボリューム要求] ページで、作成された PVC を表示できます。

手順 3: アプリケーションを作成する

  1. pvc-dynamic.yaml という名前のファイルを作成します。

    次のテンプレートを使用して、nginx-dynamic という名前のアプリケーションを作成し、PVC をアプリケーションにマウントします。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: nginx-dynamic
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
              name: web
            volumeMounts:
            - name: pvc-disk
              mountPath: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc

    パラメーター

    説明

    mountPath

    ディスクのマウントパス。

    claimName

    アプリケーションにマウントされた PVC の名前。

  2. 次のコマンドを実行して、アプリケーションをデプロイし、PVC をアプリケーションにマウントします。

    kubectl create -f pvc-dynamic.yaml
  3. デプロイされたアプリケーションを表示します。

    クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [StatefulSets] を選択します。[StatefulSets] ページで、作成されたアプリケーションを表示できます。

関連情報