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

Container Service for Kubernetes:サービスを中断せずにディスクボリュームを拡張する

最終更新日:Nov 14, 2024

Container Service for Kubernetes (ACK) を使用すると、Container Storage Interface (CSI) プラグインを使用して、Kubernetes 1.16以降を実行するクラスターのサービスを中断することなくディスクボリュームを拡張できます。 このトピックでは、サービスを中断せずにディスクボリュームを拡張する方法について説明します。

使用上の注意

  • データバックアップ

    ディスクボリュームを拡張する前に、ディスクボリュームの拡張中にデータの問題が発生した場合に備えて、ディスクのスナップショットを作成します。

  • シナリオ

    • 動的にプロビジョニングされた永続ボリューム (PV) のみを拡張でき、サービスを中断することなく、StorageClassNameパラメーターを含む永続ボリュームクレーム (PVC) を使用してマウントされます。

    • インラインタイプのディスクボリュームは拡張できません。 このタイプのディスクボリュームは、PVおよびPVCを使用して作成されません。

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

    • StorageClassにAllowVolumeExpansion: Trueを指定します。 AllowVolumeExpansionパラメーターは、ACKによって作成されたStorageClassesに対して自動的にTrueに設定されます。 手動で作成されるStorageClassesの場合、AllowVolumeExpansionパラメーターをTrueに手動で設定する必要があります。

    • ボリューム拡張中、ポッドは実行中の状態のままでなければなりません。

  • プラグインのバージョン

    CSIプラグインが最新バージョンに更新されていることを確認します。

クラスタのリソースアクセス管理 (RAM) ロールにResizeDisk権限を付与する

サービスを中断せずにディスクボリュームを拡張する前に、クラスターのRAMロールResizeDisk権限を付与する必要があります。 次の手順を実行して、クラスタタイプと使用するボリュームプラグインに基づいてResizeDisk権限を付与します。

CSIプラグインを使用するACK専用クラスター

  1. ACKコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、クラスター.

  3. クラスターページで管理したいクラスターのアクション列にある詳細をクリックしてください。

  4. 左側のナビゲーションウィンドウで、クラスター情報をクリックします。

  5. クラスターリソースタブをクリックし、マスターRAMロールのハイパーリンクをクリックします。.

  6. RAMコンソールで、RAMロールにResizeDisk権限を付与します。 権限を付与する方法の詳細については、「カスタムポリシーのドキュメントと説明の変更」をご参照ください。resizedisk

FlexVolumeまたはACK管理クラスターを使用するACK専用クラスター

上記の手順1〜手順4を実行し、マスターRAMロールの横にあるハイパーリンクをクリックします。

アプリケーションポッドを起動せずにディスクボリュームを拡張する

  1. コマンドラインツールを使用してACKクラスターに接続します。 詳細については、「手順2: クラスター資格情報の種類の選択」をご参照ください。

    この例では、管理するポッドは次の状態です。

    次のコマンドを実行してポッド情報を照会します。

    kubectl get pod

    期待される出力:

    <YOUR-POD-NAME>         1/1     Running   0          42s

    次のコマンドを実行して、ポッドにマウントされているボリュームを照会します。

    kubectl exec <YOUR-POD-NAME>  -- df /data

    期待される出力:

    Filesystem     1K-blocks  Used   Available Use% Mounted on
    /dev/vdb       20511312   45080  20449848  1%   /data

    次のコマンドを実行して、PVC情報を照会します。

    kubectl get pvc

    期待される出力:

    NAME              STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     AGE
    <your-PVC-name>   Bound    d-wz9hpoifm43yn9zi****   20Gi       RWO            alicloud-disk-topology-alltype   57s

    次のコマンドを実行して、PV情報を照会します。

    kubectl get pv

    期待される出力:

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                     STORAGECLASS                     REASON   AGE
    d-wz9hpoifm43yn9zi****   20Gi       RWO            Delete           Bound      default/<your-PVC-name>   alicloud-disk-topology-alltype            65s
  2. 次のコマンドを実行して、[使用状況] セクションの要件を満たしたときにディスクボリュームを拡張します。

    kubectl patch pvc <your-PVC-name> -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'

    1分待ってから、PVが拡張されているかどうかを確認します。

    次のコマンドを実行して、PV情報を照会します。

    kubectl get pv d-wz9hpoifm43yn9zi****

    期待される出力:

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                    STORAGECLASS                     REASON   AGE
    d-wz9hpoifm43yn9zi****   30Gi       RWO            Delete           Bound    default/<your-PVC-name>   alicloud-disk-topology-alltype           5m23s

    次のコマンドを実行して、PVC情報を照会します。

    kubectl get pvc

    期待される出力:

    NAME             STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     AGE
    <your-PVC-name>   Bound    d-wz9hpoifm43yn9zi****   30Gi       RWO           alicloud-disk-topology-alltype   5m10s

    次のコマンドを実行して、ポッドにマウントされているボリュームを照会します。

    kubectl exec <YOUR-POD-NAME> -- df /data

    期待される出力:

    Filesystem     1K-blocks  Used   Available  Use%  Mounted on
    /dev/vdb       30832548   45036  30771128   1%    /data

    サービスを中断せずにディスクボリュームを拡張するには、上記のコマンドを実行するだけです。

関連ドキュメント

ディスクボリュームの使用率が指定したしきい値を超えたときにディスクボリュームを自動的に拡張する方法については、「ディスクボリュームを自動的に拡張する (パブリックプレビュー) 」をご参照ください。