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

Container Service for Kubernetes:ディスクボリュームのオンライン拡張

最終更新日:Dec 16, 2024

ビジネスデータやアプリケーションデータが大きくなると、ディスク容量が不足することがあります。 この問題を解決するには、ディスクを拡張します。 動的にプロビジョニングされたディスクボリュームはオンライン拡張をサポートしています。これにより、ポッドを中断することなくディスク容量を増やし、ビジネスオペレーションの継続性を確保できます。

制限事項

Container Service for Kubernetes (ACK) サーバーレスクラスターでは、ディスクボリュームの拡張に次の制限が適用されます。

  • インラインタイプのディスクボリュームは拡張できません。つまり、永続ボリュームクレーム (PVC) を使用せずに作成されたディスクボリュームはサポートされません。

  • PVCsを使用して作成されたディスクボリュームの場合、StorageClassesにバインドされたPVCsを使用してマウントされた動的にプロビジョニングされた永続ボリューム (PVs) のみを拡張できます。

  • ディスクカテゴリの現在の容量範囲内でのみ拡張できます。 ディスクのディスクカテゴリは変更できません。

  • 基本ディスクに関連付けられているボリュームは拡張できません。

準備

  1. Container Storage Interface (CSI) プラグインがクラスターにインストールされ、最新バージョンにアップグレードされます。 詳細については、「csi-provisionerのインストールとアップグレード」をご参照ください。

  2. クラウドディスクがマウントされているポッドのステータスを確認して、ポッドが [実行中] 状態であることを確認します。

  3. 使用するStorageClassのYAMLファイルをチェックして、allowVolumeExpansionがtrueに設定されていることを確認します。

    説明

    デフォルトでは、StorageClassのallowVolumeExpansionパラメーターはtrueに設定されています。 StorageClassの作成時にこのパラメーターを設定しなかった場合、システムは自動的にallowVolumeExpansion: trueを設定します。

  4. (オプション) クラウドディスクスナップショットを作成します。 詳細については「スナップショットの作成」をご参照ください。

    重要

    ディスクボリュームを拡張する前に、ディスクボリュームの拡張中にデータ損失が発生した場合に備えて、ディスクのスナップショットを作成することをお勧めします。 拡張が完了したら、スナップショットを手動で削除して、不要なスナップショットコストを回避する必要があります。

オンラインディスク拡張を有効にする

デフォルトでは、ACKサーバーレスクラスターはディスク拡張をサポートしていません。 オンラインディスク拡張機能を有効にするには、eci-profileを変更し、enablePVCControllerパラメーターをtrueに設定します。

kubectlを使う

  1. クラスターに接続します。 詳細については、「kubectlを使用したACKクラスターへの接続」をご参照ください。

  2. 次のコマンドを実行して、eci-profileを編集します。

    kubectl edit configmap eci-profile -n kube-system
  3. enablePVCControllerパラメーターの値をtrueに設定し、ファイルを保存します。

コンソールを使用する

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[設定] > [設定] を選択します。

  3. [名前空間] ドロップダウンリストから [kube-system] を選択します。

  4. eci-profileを見つけて、[編集] をクリックします。

  5. enablePVCControllerパラメーターをtrueに設定し、[OK] をクリックします。

オンラインでディスクを展開します

アプリケーションが動的にプロビジョニングされたディスクボリュームにマウントされている場合、次の手順に従って、ポッドを中断することなくディスクを拡張できます。

  1. クラスターに接続します。 詳細については、「kubectlを使用したACKクラスターへの接続」をご参照ください。

  2. アプリケーションが実行されているディスクのマウント状態を確認します。

    次のサンプルコマンドでは、マウントパスが /dataであるtest-0という名前のポッドを使用します。

    kubectl exec test-0 -- df /data

    サンプル出力:

    Filesystem     1K-blocks  Used Available Use% Mounted on
    /dev/vdb        25626852    24  25610444   1% /data
  3. PVCを見る:

    kubectl get pvc

    次のサンプル出力では、PVC名はtest-pvc、PVCにバインドされたクラウドディスクIDはd-uf68pljc3sppvhss **** 、容量は25 GiBです。

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    test-pvc   Bound    d-uf68pljc3sppvhss****   25Gi       RWO            test-sc        <unset>                 7m38s
  4. PVC情報を変更してディスクを拡張します。

    次のサンプルコマンドは、test-PVCという名前のpvcを30 GiBに拡張します。

    kubectl patch pvc test-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  5. しばらく待ってから、拡張が完了したかどうかを確認します。

    1. PVCを見る:

      kubectl get pvc

      次のサンプル出力では、ID d-uf68pljc3sppvhss **** のクラウドディスクが30 GiBに拡張されています。

      NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
      test-pvc   Bound    d-uf68pljc3sppvhss****   30Gi       RWO            test-sc        <unset>                 18m
    2. クラウドディスクのマウントステータスを確認します。

      kubectl exec test-0 -- df /data

      次のサンプル出力は、拡張が成功したことを示しています。

      Filesystem     1K-blocks  Used Available Use% Mounted on
      /dev/vdb        30787492    24  30771084   1% /data