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

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

最終更新日:Sep 02, 2026

このトピックでは、ACK Serverless でステートフルアプリケーション向けに Alibaba Cloud のディスクボリュームを動的にプロビジョニングしてマウントする方法と、その永続ストレージ特性を検証する方法について説明します。

ユースケース

ディスクボリュームは、専用の高性能なブロックストレージを必要とするワークロードに適しています。

  • Pod 間のデータ共有を伴わない、高いディスク I/O 要件を持つステートフルアプリケーション (例:MySQL、Redis)

  • 高スループットのログ書き込み

  • Pod のライフサイクルから独立したデータ永続化

動的プロビジョニングの仕組み

PersistentVolumeClaim (PVC) が StorageClass を参照すると、Kubernetes は Alibaba Cloud のディスクをバックエンドとする PersistentVolume (PV) を自動的に作成してバインドするため、手動でのディスク作成が不要になります。

ACK Serverless クラスターには、デフォルトの StorageClass は含まれていません。ストレージをプロビジョニングする前に作成する必要があります。

Kubernetes はデフォルトのStorageClass をサポートしています。PVC が StorageClass を省略した場合、Kubernetes はデフォルトの StorageClass を使用して PV をプロビジョニングします。詳細については、「ストレージの基礎」をご参照ください。

前提条件

以下を確認してください。

ディスクボリュームのプロビジョニング

以下の手順を順番に実行します。

  1. StorageClass を作成し、ディスクタイプとプロビジョニングの動作を定義します。

  2. PVC を作成し、StorageClass からストレージを要求します。

  3. アプリケーションをデプロイし、PVC をマウントします。

ACKコンソール

手順1:StorageClassの作成

  1. ACK コンソールにログインし、左側メニューで [クラスター] をクリックします。

  2. [クラスター] ページで対象のクラスター名をクリックし、[ボリューム] > [StorageClass] を選択します。

  3. [StorageClass] ページで、[作成] をクリックします。

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

    特定の ECS インスタンスタイプは、ESSD または弾性エフェメラルディスクをサポートしていません。詳細については、「Elastic Block Storageに関するFAQ」をご参照ください。
    パラメーター 必須 説明
    [名前] はい StorageClass 名。
    [PVタイプ] はい [クラウドディスク] を選択します。
    [パラメーター] はい ディスクカテゴリ。デフォルト: cloud_essd。有効な値: cloud_auto (ESSD AutoPLディスク)、cloud_essd (ESSD)、cloud_essd_entry (ESSD Entryディスク)、cloud_ssd (標準 SSD)、cloud_efficiency (Ultra Disk)、elastic_ephemeral_disk_standard (標準弾性エフェメラルディスク)、elastic_ephemeral_disk_premium (プレミアム弾性エフェメラルディスク)、cloud_regional_disk_auto (リージョナル ESSD)。フォールバック用に複数の値を設定できます (例: type: cloud_ssd,cloud_essd)。システムは各値を順番に試行します。zoneId を追加して特定のゾーンに固定できます (例: または )。
    [リクレームポリシー] はい PVC 削除時の PV とディスクの動作。デフォルト: [削除] (両方とも削除)。両方を保持するには [保持] に設定します。データの損失が許容できない場合に推奨されます。
    [バインディングモード] いいえ デフォルト: [即時] (Pod がスケジューリングされる前にディスクを作成します)。
  5. [作成] をクリックします。StorageClass が [StorageClass] ページに表示されます。

手順2:PersistentVolumeClaim (PVC) の作成

  1. 左側メニューで、[ボリューム] > [PersistentVolumeClaim] を選択します。

  2. [PersistentVolumeClaim] ページで、[作成] をクリックします。

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

    パラメーター 必須 説明
    [PVCタイプ] はい [クラウドディスク] を選択します。
    [名前] はい PVC 名。名前空間内で一意である必要があります。
    [割り当てモード] はい [StorageClassの使用] を選択します。
    [既存のStorageClass] はい [選択] をクリックし、手順1で作成した StorageClass を見つけ、[操作] 列の [選択] をクリックします。
    [容量] はい 要求するストレージ容量。最小:20 GiB。
    [アクセスモード] いいえ デフォルト: [ReadWriteOnce] (単一ノードでの読み書き)。
  4. [作成] をクリックします。PVC が [PersistentVolumeClaim] ページに表示され、PV がバインドされます。

手順3:アプリケーションのデプロイ

  1. 左側メニューで、[ワークロード] > [StatefulSet] を選択します。

  2. [StatefulSet] ページで、[イメージから作成] をクリックします。

  3. アプリケーションを設定します。[クラウドストレージ] を選択し、手順2で作成した PVC をマウントします。この例では、ディスクは /tmp にマウントされ、/tmp に書き込まれたデータが永続化されます。詳細については、「StatefulSetを使用したステートフルアプリケーションの作成」をご参照ください。

  4. [作成] をクリックします。アプリケーションが永続ディスクストレージとともにデプロイされます。

kubectl

手順1:StorageClassの作成

マルチゾーンクラスターでは、StorageClass が Pod のスケジューリング前にディスクタイプを決定します。

  1. storage-class-csi.yaml というファイルを作成します。

    パラメーター 必須 説明
    provisioner はい diskplugin.csi.alibabacloud.com に設定します。
    type はい ディスクカテゴリ。有効な値: cloud_auto (ESSD AutoPLディスク)、cloud_essd (ESSD、デフォルト)、cloud_essd_entry (ESSD Entryディスク)、cloud_ssd (標準 SSD)、cloud_efficiency (Ultra Disk)、elastic_ephemeral_disk_standard (標準弾性エフェメラルディスク)、elastic_ephemeral_disk_premium (プレミアム弾性エフェメラルディスク)、cloud_regional_disk_auto (リージョナル ESSD)。フォールバックとして、複数の値をカンマ区切りで指定できます。詳細については、「EBSの料金」、「ブロックストレージのパフォーマンス」、「インスタンスファミリーの概要」をご参照ください。
    encrypted いいえ ディスクを暗号化するかどうか。デフォルト: false。
    reclaimPolicy はい PVC 削除時の PV とディスクの動作。Delete:両方とも削除。Retain:両方とも保持 — データの損失が許容できない場合は Retain を使用します。デフォルト: Delete。
    allowVolumeExpansion いいえ オンラインでのディスク拡張を許可するには true に設定します。
    volumeBindingMode いいえ デフォルト: Immediate (Pod がスケジューリングされる前にディスクをプロビジョニングします)。
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-ssd-b
    # Alibaba Cloud ディスクのプロビジョナーとして diskplugin.csi.alibabacloud.com を使用します。
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      # ディスクカテゴリのフォールバック順序:ESSD → 標準 SSD → Ultra Disk。
      # システムは各値を順番に試行し、ディスクが作成されると停止します。
      type: cloud_essd,cloud_ssd,cloud_efficiency
      # オプション。ディスクを保存時に暗号化するには "true" に設定します。
      encrypted: "false"
    # Retain:PVC が削除されたときに PV とディスクを保持します (手動でのクリーンアップが必要)。
    # Delete:PVC が削除されると、PV とディスクが自動的に削除されます。
    reclaimPolicy: Retain
    # ダウンタイムなしでオンラインでのディスク拡張を許可します。
    allowVolumeExpansion: true
    # Immediate:Pod がスケジューリングされる前にディスクをプロビジョニングします。
    volumeBindingMode: Immediate
  2. StorageClass を適用します。

    kubectl apply -f storage-class-csi.yaml
  3. ACK コンソールで確認します。ログインし、[クラスター] をクリックし、対象のクラスター名をクリックした後、[ボリューム] > [StorageClass] を選択します。

手順2:PersistentVolumeClaim (PVC) の作成

  1. pvc-ssd.yaml というファイルを作成します。

    パラメーター 必須 説明
    name はい PVC 名。
    accessModes はい PV のアクセスモード。
    volumeMode いいえ ディスクのマウント形式。Filesystem がサポートされています。
    storageClassName はい プロビジョニング用の StorageClass。
    storage はい 要求するストレージ容量。最小:20 GiB。
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 25Gi
      storageClassName: alicloud-disk-ssd-b
  2. PVC を作成します。

    kubectl create -f pvc-ssd.yaml
  3. ACK コンソールで確認します。[ボリューム] > [PersistentVolumeClaim] を選択します。

手順3:アプリケーションのデプロイ

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

    パラメーター 説明
    mountPath ディスクマウント用のコンテナパス。
    claimName PVC 名。手順2の 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    # 手順2で作成した PVC 名と一致させる必要があります。
  2. アプリケーションをデプロイします。

    kubectl create -f pvc-dynamic.yaml
  3. ACK コンソールで確認します。[ワークロード] > [StatefulSet] を選択します。

次のステップ