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

Container Service for Kubernetes:永続ストレージのための動的プロビジョニングされたディスクボリュームの使用

最終更新日:Mar 03, 2026

動的ボリュームプロビジョニングは、各アプリケーションレプリカに対して独立したディスクを自動的に作成し、マウントします。これは、高い I/O と低レイテンシーを必要とするデータベース、ミドルウェア、その他のワークロードに適しており、ストレージライフサイクル管理を簡素化します。

仕組み

StatefulSet を使用した動的ディスクプロビジョニングは、次の 3 つのステップで行われます。

  1. テンプレートの定義。 新しい StorageClass を作成するか、デフォルトの StorageClass を使用します。テンプレートでは、ディスクタイプ、パフォーマンスレベル、リクレイムポリシーなどのパラメーターを定義します。

  2. ストレージ要件の宣言。 StatefulSet で volumeClaimTemplates を定義し、StorageClass を参照します。これにより、各 Pod が使用するストレージ容量やアクセスモードなどの PVC 仕様を宣言します。

  3. ボリュームの自動作成とマウント。 StatefulSet が Pod を作成すると、システムはテンプレートに基づいて Pod ごとに一意の PVC を生成します。Container Storage Interface (CSI) コンポーネントは、StorageClass のルールに基づいて永続ボリューム (PV) を作成し、PV を PVC にバインドして、ディスクを Pod にマウントします。

適用範囲と制限事項

  • ゾーンの制限: リージョン ESSD (エンタープライズ SSD) を除くすべてのディスクタイプは、ゾーンをまたいでマウントすることはできません。同じゾーン内の Pod にのみマウントできます。

  • インスタンスファミリーの制約:一部のディスクタイプは、特定のインスタンスファミリーにのみアタッチできます。

  • CSI コンポーネントの要件: csi-plugin および csi-provisioner コンポーネントがインストールされている必要があります。 > 注: CSI コンポーネントはデフォルトでインストールされています。 手動でアンインストールしていないことを確認してください。 インストールステータスは [アドオン] ページで確認してください。 最適なエクスペリエンスを得るには、CSI コンポーネントをアップグレードして最新バージョンにしてください。

  • 仮想ノードの要件: 仮想ノードでディスクを使用するには、クラスターと kube-scheduler のバージョンが次の要件を満たす必要があります。

    クラスターバージョン

    kube-scheduler バージョン

    1.28 以降

    6.9.3 以降

    1.26

    6.8.7

    1.24

    6.4.7

    1.22

    6.4.5

StorageClass の選択

Container Service for Kubernetes (ACK) は、複数のデフォルト StorageClass を提供します。StorageClass は作成後に変更できません。デフォルトの StorageClass が要件を満たさない場合は、新しい StorageClass を作成してください。詳細については、「手動での StorageClass の作成」をご参照ください。

デフォルトの StorageClass

デフォルトの StorageClass を選択し、アプリケーションの storageClassName フィールドでその名前を参照します。

StorageClass 名

動的に作成されるディスクタイプ

alicloud-disk-topology-alltype (推奨)

ゾーンの不一致によるマウント失敗を防ぐために、ディスクを作成する前に Pod をスケジュールします (volumeBindingMode: WaitForFirstConsumer)。システムは、Pod がスケジュールされたノードのゾーンとインスタンスタイプ、およびディスクインベントリに基づいて、ESSD、標準 SSD、Ultra ディスクの順でディスクの作成を試みます。デフォルトでは、最小容量 20 GiB の PL1 ESSD の作成が優先されます。

alicloud-disk-essd

ESSD (エンタープライズ SSD)。デフォルトのパフォーマンスレベルは PL1 で、最小ディスク容量は 20 GiB です。

重要

CloudBox の ESSD は、PL0 パフォーマンスレベルのみをサポートします。手動で StorageClass を作成し、performanceLevelPL0 として指定する必要があります。

alicloud-disk-ssd

標準 SSD。最小ディスク容量は 20 GiB です。

alicloud-disk-efficiency

Ultra ディスク。最小ディスク容量は 20 GiB です。

kubectl describe sc <storageclass-name> を実行して、StorageClass の詳細な構成を表示します。

手動での StorageClass の作成

kubectl

  1. disk-sc.yaml という名前のファイルを作成します。次の例は、volumeBindingMode: WaitForFirstConsumer を使用して PV バインドを遅延させる StorageClass を示しています。StorageClass パラメーター > 注意: 特定のスケジューリングメソッドを使用したり、特定の Annotation を追加したりして Pod を仮想ノードにスケジュールする場合、WaitForFirstConsumer タイプの StorageClass は使用できません。詳細については、「ディスクをマウントした Pod を仮想ノードにスケジュールしたときに、PVC が Pending 状態のままになる場合はどうすればよいですか?」をご参照ください。

    パラメーター

    説明

    provisioner

    ドライバーのタイプ。必須。Alibaba Cloud ディスク CSI プラグインの場合は diskplugin.csi.alibabacloud.com に設定します。

    parameters.type

    ディスクタイプ。必須。有効な値:

    これらの値を任意に組み合わせて指定できます。例:type: cloud_ssd,cloud_essd,cloud_auto。システムは指定された順序でディスクの作成を試みます。最終的なディスクタイプは、ノードインスタンスやゾーンでサポートされているディスクタイプなどの要因によって決まります。

    parameters.resourceGroupId

    ディスクが属するリソースグループ。デフォルト:""

    parameters.regionId

    ディスクが配置されるリージョン。クラスターのリージョンと一致する必要があります。

    parameters.fstype

    ファイルシステムタイプ。有効な値:ext4 (デフォルト) と xfs

    parameters.mkfsOptions

    ディスクをフォーマットするためのパラメーター。例:mkfsOptions: "-O project,quota"

    parameters.diskTags

    ディスクのタグ。例:diskTags: "a:b,b:c"diskTags/a: b 形式でタグを指定することもできます。CSI v1.30.3 以降が必要です。

    parameters.encrypted

    ディスクを暗号化するかどうか。デフォルト:false (暗号化しない)。

    parameters.performanceLevel

    ESSD パフォーマンスレベル。 有効な値: PL0PL1 (デフォルト)、PL2PL3。 CloudBox と併用する場合は、PL0 に設定します。

    parameters.volumeExpandAutoSnapshot [非推奨]

    CSI v1.31.4 以降、非推奨になりました。

    parameters.provisionedIops

    ESSD AutoPL ディスクのプロビジョニングされたパフォーマンス (IOPS)

    parameters.burstingEnabled

    ESSD AutoPL ディスクのバースト (パフォーマンスバースト) を有効にするかどうか。 デフォルト: false

    parameters.multiAttach

    ディスク マルチアタッチ機能を有効にするかどうかを指定します。ディスク マルチアタッチ機能。デフォルト: false

    volumeBindingMode

    バインドモード。有効な値:

    • Immediate (デフォルト):Pod を作成する前にディスクを作成します。

    • WaitForFirstConsumer:バインドを遅延させます。Pod が最初にスケジュールされ、その後、Pod と同じゾーンにディスクが作成されます。

    マルチゾーンシナリオでは、ディスクと ECS ノードが異なるゾーンにあることによるマウント失敗を防ぐために WaitForFirstConsumer を使用します。

    reclaimPolicy

    リクレイムポリシー。有効な値:

    • Delete (デフォルト):PVC が削除されると、PV とディスクも削除されます。

    • Retain:PVC が削除されても、PV とディスクデータは削除されません。手動で削除する必要があります。

    データセキュリティを優先する場合は、意図しないデータ削除を防ぐために Retain を使用します。

    allowVolumeExpansion

    true に設定すると、オンラインディスクボリュームの拡張を許可します。

    allowedTopologies

    ディスクの作成を特定のトポロジードメインに制限します。

    • key:トポロジードメインのラベル。サポートされている値:

      • topology.diskplugin.csi.alibabacloud.com/zone:Alibaba Cloud CSI プラグインが提供する専用のトポロジーキー。

      • alibabacloud.com/ecs-instance-id:エラスティックエフェメラルディスクを使用する際にノードを指定するために使用します。

    • values:ゾーンまたはノード ID のリスト。

       apiVersion: storage.k8s.io/v1
       kind: StorageClass
       metadata:
         # StorageClass の名前
         name: alicloud-disk-wait-for-first-consumer
       # ドライバーのタイプ。Alibaba Cloud ディスク CSI プラグインを使用する場合、この値は固定です。
       provisioner: diskplugin.csi.alibabacloud.com
       parameters:
         # ディスクタイプ。システムは優先順位に基づいてタイプを選択します。
         type: cloud_auto,cloud_essd,cloud_ssd
         # ファイルシステムタイプ
         fstype: ext4
         diskTags: "a:b,b:c"
         encrypted: "false"
         # ESSD のパフォーマンスレベル
         performanceLevel: PL1
         provisionedIops: "40000"
         burstingEnabled: "false"
       # バインドモード。マルチゾーンシナリオでは WaitForFirstConsumer を使用します。
       volumeBindingMode: WaitForFirstConsumer
       # リクレイムポリシー
       reclaimPolicy: Retain
       # ボリューム拡張を許可するかどうかを指定します
       allowVolumeExpansion: true
       # トポロジー制約:ディスクの作成を指定されたゾーンに制限します
       allowedTopologies:
       - matchLabelExpressions:
         - key: topology.diskplugin.csi.alibabacloud.com/zone
           values:
           # 実際のゾーンに置き換えてください
           - cn-hangzhou-i
           - cn-hangzhou-k
  2. StorageClass を作成します。

       kubectl create -f disk-sc.yaml
  3. StorageClass を表示します。出力は、StorageClass が WaitForFirstConsumer バインドモードで作成されたことを示しています。

       kubectl get sc
       NAME                                    PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
       alicloud-disk-wait-for-first-consumer   diskplugin.csi.alibabacloud.com   Retain          WaitForFirstConsumer   true                   10s

コンソール

  1. クラスター」ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、「ストレージ」>「StorageClasses」を選択します。

  2. [作成] をクリックし、PV タイプとして [クラウドディスク] を選択し、パラメーターを設定して、[OK] をクリックします。 > 注意: 特定のスケジューリングメソッドを使用するか、特定の Annotation を追加して Pod を仮想ノードにスケジュールする場合、WaitForFirstConsumer タイプのストレージクラスは使用できません。 詳細については、「ディスクをマウントした Pod を仮想ノードにスケジュールした際に PVC が保留 (Pending) 状態のままになる場合」をご参照ください。 ストレージクラスが作成されると、[ストレージクラス] ページで表示できます。

    パラメーター

    説明

    パラメーター

    デフォルトパラメーター:type。ディスクタイプ。必須。有効な値:

    これらの値を任意に組み合わせて指定できます。例:type: cloud_ssd,cloud_essd,cloud_auto。システムは指定された順序でディスクを作成します。最終的なディスクタイプは、ノードインスタンスやゾーンでサポートされているディスクタイプなどの要因によって決まります。

    オプションパラメーター:

    • resourceGroupId:ディスクが属するリソースグループ。デフォルト:""

    • regionId:ディスクが配置されるリージョン。クラスターのリージョンと一致する必要があります。

    • fstype:ファイルシステムタイプ。有効な値:ext4 (デフォルト) と xfs

    • mkfsOptions:ディスクをフォーマットするためのパラメーター。例:mkfsOptions: "-O project,quota"

    • diskTags:ディスクのタグ。例:diskTags: "a:b,b:c"diskTags/a: b 形式もサポートしています。CSI v1.30.3 以降が必要です。

    • encrypted:ディスクを暗号化するかどうか。デフォルト:false

    • performanceLevel: ESSD パフォーマンスレベル。有効な値: PL0PL1(デフォルト)、PL2PL3。CloudBox と併用する場合は、PL0 に設定します。

    • provisionedIops: ESSD AutoPL ディスクのプロビジョニングされたパフォーマンス (IOPS)

    • burstingEnabled: ESSD AutoPL ディスクで バースト(パフォーマンスのバースト) を有効にするかどうか。デフォルト: false

    • multiAttach: ディスクマルチアタッチ機能を有効にするかどうかを指定します。デフォルト: false

    回収ポリシー

    リクレイムポリシー。有効な値:

    • Delete (デフォルト):PVC が削除されると、PV とディスクも削除されます。

    • Retain:PVC が削除されても、PV とディスクデータは削除されません。手動で削除する必要があります。

    データセキュリティを優先する場合は、意図しないデータ削除を防ぐために Retain を使用します。

    バインドモード

    バインドモード。有効な値:

    • Immediate (デフォルト):Pod を作成する前にディスクを作成します。

    • WaitForFirstConsumer:バインドを遅延させます。Pod が最初にスケジュールされ、その後、Pod と同じゾーンにディスクが作成されます。

    マルチゾーンシナリオでは、ディスクと ECS ノードが異なるゾーンにあることによるマウント失敗を防ぐために WaitForFirstConsumer を使用します。

StatefulSet へのディスクのマウント

各 Pod レプリカが独自の独立したディスクを必要とする場合は、StatefulSet を使用します。

重要

ディスクは非共有ストレージです。マルチアタッチが有効になっていない場合、ディスクは一度に 1 つの Pod にしかマウントできません。複数レプリカの Deployment で PVC を共有すると、既存の Pod で使用中のディスクをマウントできないため、新しい Pod は失敗します。StatefulSet を使用するか、Pod ごとに個別のディスクをマウントしてください。Deployment でクラウドディスクを使用するには、「一時ストレージボリュームとしてクラウドディスクを使用する」をご参照ください。マルチアタッチを有効にするには、「マルチアタッチと予約で NVMe クラウドディスクを使用する」をご参照ください。

  1. statefulset.yaml という名前のファイルを作成します。次の例では、2 つの Pod を持つ StatefulSet を作成します。volumeClaimTemplates を使用して、各 Pod に独立した永続ストレージを自動的に作成し、バインドします。> 重要: Pod で securityContext.fsGroup を設定すると、ボリュームのマウント時に kubelet がファイルの権限を再帰的に変更 (chmod/chown) します。ボリュームに多数のファイルが含まれている場合、これによりマウント時間が大幅に増加します。> > Kubernetes 1.20 以降を実行しているクラスターでは、fsGroupChangePolicyOnRootMismatch に設定します。これにより、ボリュームのルートディレクトリの権限が必要な権限と一致しない場合にのみ、最初のマウント時に再帰的な権限変更が実行されます。さらなるパフォーマンスチューニングや、より詳細な権限制御が必要な場合は、initContainer を使用して、メインのアプリケーションコンテナーが開始する前に権限調整コマンドを実行します。

       apiVersion: apps/v1
       kind: StatefulSet
       metadata:
         name: web
       spec:
         serviceName: "nginx"
         replicas: 2
         selector:
           matchLabels:
             app: nginx
         template:
           metadata:
             labels:
               app: nginx
           spec:
             # マウントパフォーマンスを最適化するために、次の securityContext を設定します
             securityContext:
               fsGroup: 1000
               fsGroupChangePolicy: "OnRootMismatch"
             containers:
             - name: nginx
               image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
               ports:
               - containerPort: 80
               volumeMounts:
               # データボリュームをコンテナーの /data ディレクトリにマウントします
               # 名前は volumeClaimTemplates で定義された metadata.name と同じでなければなりません
               - name: pvc-disk
                 mountPath: /data
         # PVC テンプレートを定義します
         volumeClaimTemplates:
         - metadata:
             name: pvc-disk
           spec:
             # アクセスモード
             accessModes: [ "ReadWriteOnce" ]
             # 事前に作成した StorageClass を関連付けます
             storageClassName: "alicloud-disk-wait-for-first-consumer"
             resources:
               requests:
                 # 要求されたストレージ容量、つまりディスクサイズ
                 storage: 20Gi
  2. StatefulSet を作成します。

       kubectl create -f statefulset.yaml
  3. Pod が Running 状態であることを確認します。

       kubectl get pod -l app=nginx
  4. マウントパスをチェックし、ディスクがマウントされていることを確認します。> 注意: この例では、Pod 名は web-1 です。実際の Pod 名に置き換えてください。期待される出力:

       kubectl exec web-1 -- df -h /data
       Filesystem      Size  Used Avail Use% Mounted on
       /dev/vdb         20G   24K   20G   1% /data

永続ストレージの検証

Pod が再作成された後もデータが永続化されることを確認するには、Pod にデータを書き込み、Pod を削除してから、データが残っているかどうかを確認します。

  1. Pod にテストデータを書き込みます。Pod web-1 の場合、マウントされたディスクパス /datatest ファイルを作成します。期待される出力:

       kubectl exec web-1 -- touch /data/test
       kubectl exec web-1 -- ls /data
       lost+found
       test
  2. Pod を削除して Pod の障害をシミュレートします。kubectl get pod -l app=nginx を再度実行します。web-1 という名前の新しい Pod が自動的に作成されます。

       kubectl delete pod web-1
  3. 新しい Pod のデータを確認します。新しい Pod web-1/data フォルダをチェックします。test ファイルがまだ存在しており、Pod が削除されて再作成された後もデータが永続化されることが確認できます。

       kubectl exec web-1 -- ls /data
       lost+found
       test

単一 Pod または単一レプリカ Deployment へのディスクのマウント

マルチレプリカのスケーリングや安定したネットワーク ID を必要としないアプリケーションの場合は、手動で PVC を作成し、Pod または Deployment にマウントします。

プロセス:StorageClass を選択し、PVC を作成し、アプリケーションで PVC をマウントします。

  1. StorageClass を準備します。

  2. PVC を作成してストレージリソースを要求します。

    kubectl

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

         apiVersion: v1
         kind: PersistentVolumeClaim
         metadata:
           name: disk-pvc
         spec:
           # アクセスモード
           accessModes:
           - ReadWriteOnce
           volumeMode: Filesystem
           resources:
             requests:
               # 要求されたストレージ容量、つまりディスクサイズ
               storage: 20Gi
           # 事前に作成した StorageClass に関連付けます
           storageClassName: alicloud-disk-topology-alltype

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

      パラメーター

      説明

      accessModes

      ボリュームのアクセスモード。有効な値: ReadWriteOnceReadOnlyManyReadWriteMany。サポートされる値は、StorageClass の multiAttach 設定および PVC の volumeMode 設定によって異なります。multiAttach は、ディスクのマルチアタッチを有効にするかどうかを指定します。デフォルト: false

      • multiAttachfalse で、volumeMode が任意の値に設定されている場合、ReadWriteOnce のみがサポートされます。

      • multiAttachtrue で、volumeModeFilesystem の場合、ReadWriteOnceReadOnlyMany のみがサポートされます。

      • multiAttachtrue で、volumeModeBlock の場合、3 つすべてのアクセスモードがサポートされます。

      重要: このシナリオでは、アクセスモードは通常 ReadWriteOnce (RWO) であり、ボリュームは一度に 1 つの Pod によってのみマウントできることを意味します。Deployment のレプリカ数は 1 を超えることはできません。Deployment をスケールアウトすると、新しい Pod は既に使用中のディスクをマウントできないため、Pending 状態のままになります。

      volumeMode

      永続ボリュームのモード。有効な値:

      • Filesystem (デフォルト):ボリュームはフォーマットされ、ディレクトリとしてマウントされます。

      • Block:ボリュームはフォーマットされていないブロックデバイスとして Pod に提供されます。

      storage

      リクエストされたストレージ容量です。容量範囲はディスクタイプによって異なります。ディスク作成の失敗を防ぐため、storage の値が、参照される StorageClass に対応するディスクタイプの容量制限に準拠していることを確認してください。

      storageClassName

      バインドする StorageClass。

    2. PVC を作成します。

         kubectl create -f disk-pvc.yaml
    3. PVC を表示します。

         kubectl get pvc

      StorageClass は WaitForFirstConsumer モードを使用しているため、PVC はそれを使用する最初の Pod が正常にスケジュールされるまで Pending 状態になります。

         NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
         disk-pvc   Pending                                      alicloud-disk-topology-alltype           <unset>                 14s

    コンソール

    1. クラスター管理ページの左側にあるナビゲーションウィンドウで、[ストレージ] > [永続ボリューム要求] を選択します。

    2. [永続ボリューム要求] ページで、[作成] をクリックします。[PVC タイプ][クラウドディスク] に設定し、プロンプトに従ってパラメーターを設定します。

      パラメーター

      説明

      割り当てモード

      [StorageClass を使用]を選択します。

      既存の StorageClass

      デフォルトまたは手動で作成された StorageClass。

      容量

      リクエストされたストレージ容量です。容量範囲はディスクタイプによって異なります。ディスクの作成が失敗しないように、storage の値が、参照される StorageClass に対応するディスクタイプの容量制限に準拠していることを確認してください。

      アクセスモード

      [ReadWriteOnce] のみがサポートされています。これは、ボリュームを単一の Pod によって読み書きモードでマウントできることを意味します。

      PVC が作成されると、[永続ボリューム要求] ページで表示できます。

  3. アプリケーションで PVC をマウントします。

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

         apiVersion: apps/v1
         kind: Deployment
         metadata:
           name: single-pod-app
         spec:
           # レプリカ数が 1 であることを確認します
           replicas: 1
           selector:
             matchLabels:
               app: nginx-single
           template:
             metadata:
               labels:
                 app: nginx-single
             spec:
               containers:
               - name: nginx
                 image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
                 ports:
                 - containerPort: 80
                 # コンテナー内のマウントポイントを定義します
                 volumeMounts:
                 - name: my-persistent-storage  # 下の volumes で定義された名前と一致する必要があります
                   mountPath: /data  # コンテナーの /data ディレクトリにマウントします
               # Pod レベルで PVC を宣言し、参照します
               volumes:
               - name: my-persistent-storage # コンテナーによって参照されるボリューム
                 persistentVolumeClaim:
                   claimName: disk-pvc # 事前に作成した PVC を参照します
    2. Deployment をデプロイします。

         kubectl create -f disk-deployment.yaml
  4. マウント結果を確認します。

    1. Pod が実行中であることを確認します。

         kubectl get pods -l app=nginx-single
    2. Pod にログインし、ディスクが /data ディレクトリにマウントされているかどうかを確認します。

         # Pod 名を取得します
         POD_NAME=$(kubectl get pods -l app=nginx-single -o jsonpath='{.items[0].metadata.name}')
         # df -h コマンドを実行します
         kubectl exec $POD_NAME -- df -h /data

      次の出力は、20 GiB のディスクが正常にマウントされたことを示しています。

         Filesystem      Size  Used Avail Use% Mounted on
         /dev/vdb         20G   24K   20G   1% /data

本番環境に適用

高可用性

ディスクの選択

ディスクのパフォーマンス課金方式、ノードのゾーン、およびインスタンスファミリーを評価します。これにより、Pod を互換性のあるノードにスケジュールできるようになります。

ディスクタイプ」を選択する際は、標準 SSD および Ultra ディスクが段階的に廃止されつつあることに注意してください。Ultra ディスクは PL0 ESSD または ESSD Entry ディスクに置き換え、標準 SSD は ESSD AutoPL ディスクに置き換えてください。

クロスゾーンディザスタリカバリ

  • アプリケーションレベルのディザスタリカバリ: データベースなどの重要なサービスについては、複数のゾーンにアプリケーションインスタンスをデプロイします。アプリケーションのデータ同期メカニズムを使用して、高可用性を実現します。

  • ストレージレベルのディザスタリカバリ: マルチゾーンディザスタリカバリをサポートするディスクタイプを選択します。同一リージョン内の異なるゾーンにデータをリアルタイムで書き込み、ゾーン間エラー回復を有効にします。詳細については、「リージョンエンタープライズ SSD (ESSD) の使用」をご参照ください。

データセキュリティとバックアップ

  • 意図しないデータ削除の防止: StorageClass の reclaimPolicyRetain に設定します。PVC が削除されても、バックエンドのディスクは削除されません。これにより、データ復元が簡素化されます。

  • 定期バックアップ: ダイナミックボリュームはリソースのプロビジョニングを簡素化しますが、データのバックアップに代わるものではありません。コアサービスでは、Backup Center を使用してデータをバックアップおよび復元してください。

  • 保管時の暗号化: 機密性の高いデータを持つアプリケーションには、StorageClass で encrypted: "true" を設定してディスクを暗号化します

パフォーマンスとコストの最適化

課金

StorageClass を使用して動的に作成されたディスクは、従量課金で課金されます。詳細については、「Elastic Block Storage の課金」および「Elastic Block Storage の価格」をご参照ください。

よくある質問

ディスクをマウントした Pod を仮想ノードにスケジュールしたときに、PVC が Pending 状態のままになる場合はどうすればよいですか?

この問題は、仮想ノードへのスケジューリングをサポートしていない StorageClass を使用した場合に発生する可能性があります。特定のラベルやアノテーションを使用して Pod を仮想ノードにスケジュールする場合、volumeBindingMode: WaitForFirstConsumer を持つ StorageClass はサポートされません。

原因: WaitForFirstConsumer モードは、kube-scheduler が Pod の物理ノードを選択することに依存しています。これにより Pod のゾーンが決定され、そのゾーンを使用してディスクが作成されます。しかし、仮想ノードの一部のスケジューリングメカニズムはこのプロセスに従わないため、CSI がゾーン情報を取得できません。その結果、PV を作成できず、PVC は Pending 状態のままになります。

診断: Pod またはその名前空間に、次のいずれかの構成が含まれているかどうかを確認します。

  • ラベル:

    • alibabacloud.com/eci: "true":Pod を ECI Pod にスケジュールします。

    • alibabacloud.com/acs: "true":Pod を ACS Pod にスケジュールします。

  • ノード指定:

    • Pod が spec.nodeName を使用して直接ノードを指定している。ノード名のプレフィックスが virtual-kubelet である。

  • アノテーション:

    • k8s.aliyun.com/eci-vswitch:ECI Pod の vSwitch を指定します。

    • k8s.aliyun.com/eci-fail-strategy: "fail-fast":ECI Pod の障害処理ポリシーを fail-fast に設定します。

参考