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

Container Service for Kubernetes:Kubernetes 1.16 以前を実行するクラスタのディスクボリュームを拡張する

最終更新日:Nov 10, 2025

クラスタの Kubernetes バージョンが 1.16 より前である場合、またはディスクが基本ディスクである場合、ディスクボリュームのマウントに使用される永続ボリューム要求 ( PVC ) を更新することによって、オンラインディスクボリューム拡張を実行することはできません。この場合、ディスクを手動でサイズ変更し、ファイルシステムを拡張する必要があります。

適用範囲

このトピックでは、PVC を変更せずにディスクのサイズを手動で変更する方法について説明します。クラスタの Kubernetes バージョンが 1.16 より前である場合、またはオンラインディスクボリューム拡張を実行できない場合は、この方法を使用できます。

重要

このモードでは、Elastic Compute Service ( ECS ) 側でディスクのサイズを変更する必要があります。クラスタ内のリソースは影響を受けず、クラスタ側の PVC と PV の容量は変更されません。 PV と PVC に表示されるディスク容量の値が実際のディスク容量と同じであることを確認するには、「サービス中断なしでディスクボリュームを拡張する」トピックの手順を実行することをお勧めします。

ビジネス要件に基づいて、オンラインサイズ変更またはオフラインサイズ変更を選択できます。

  • オンラインサイズ変更: ディスクのファイルシステムを拡張するときにディスクの I/O スループットが高い場合、ファイルシステムで I/O エラーが発生する可能性があります。この方法を選択した場合、アプリケーションを再起動する必要はありません。

  • オフラインサイズ変更: アプリケーションを一時停止すると、データのセキュリティを確保するためにディスク I/O が中断されます。ただし、アプリケーションは一定期間中断されます。

重要

基本ディスクは、サービス中断なしでサイズ変更することはできません。

次の例では、動的にプロビジョニングされたディスクボリュームで作成されたアプリケーションを使用して、ディスクボリュームを拡張する方法について説明します。

オンラインサイズ変更

サービス中断なしでディスクのサイズを変更します

手順 1: ディスク情報を確認する

  1. クラスタに接続します。詳細については、「クラスタの kubeconfig ファイルを取得し、kubectl を使用してクラスタに接続する」または「Cloud Shell で kubectl を使用して Kubernetes クラスタを管理する」をご参照ください。

  2. ディスクが接続されているポッドに関する情報を表示し、ポッドが Running 状態であることを確認します。

    kubectl get pod 

    期待される出力:

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          38s
  3. PVC を表示してディスク ID を取得します。

    kubectl get pvc

    次のコマンド出力は、PVC にバインドされている PV が d-uf628m33r5rsbi****** (クラウドディスクの ID ) であり、容量が 20 GiB であることを示しています。

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf628m33r5rsbi******   20Gi       RWO            disk           <unset>                 64s

手順 2: ディスクとファイルシステムのサイズを変更する

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

  2. 左側のナビゲーションウィンドウで、[ストレージとスナップショット] > [ブロックストレージ] を選択します。

  3. 上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。地域

  4. ディスク ID を使用してアプリケーションに接続されているディスクを見つけ、ディスクを選択し、ページの下部にある [サイズ変更] をクリックします。

  5. 表示されるウィザードページで、指示に従ってサイズ変更操作を完了します。

    • [ディスクの決定と注意事項の確認] ステップで、ディスク情報を確認し、注意事項を読み、[リスクを理解し、データをバックアップしました。続行します。] をクリックします。

    • [サイズ変更方法と新しいサイズの構成] ステップで、パラメータを構成し、[OK] をクリックします。

      パラメータ

      説明

      [新しいディスクサイズ]

      ディスクの容量を指定します。値は現在のディスクサイズより小さくすることはできません。

      30 GiB

      [サイズ変更方法]

      [オンラインサイズ変更] をクリックします。インスタンスを再起動する必要なく、新しいディスクサイズがすぐに有効になります。

      オンラインサイズ変更

    • [サイズ変更結果の確認] ステップで、ディスクのサイズが変更されたことを確認し、[次のステップ、パーティションとファイルシステムの拡張] をクリックします。

      説明

      ディスクのサイズを変更した後、ファイルシステムを拡張してアプリケーションのストレージ容量を更新する必要があります。

    • [パーティションとファイルシステムの拡張] ステップで、[cloud Assistant を使用する] を選択し、[cloud Assistant にこの操作の実行を承認する] を選択して、[cloud Assistant を承認する] をクリックします。

      操作を実行した後、ディスクとファイルシステムのサイズが変更されていることを確認します。

      云盘扩容

オフラインサイズ変更

アプリケーションを一時停止するには、レプリカの数を 0 に設定します。ディスクのサイズを変更した後、アプリケーションを再起動します。

手順 1: ディスク情報を確認し、アプリケーションを一時停止する

  1. クラスタに接続します。詳細については、「クラスタの kubeconfig ファイルを取得し、kubectl を使用してクラスタに接続する」または「Cloud Shell で kubectl を使用して Kubernetes クラスタを管理する」をご参照ください。

  2. ディスクが接続されているポッドに関する情報を表示し、ポッドが Running 状態であることを確認します。

    kubectl get pod 

    期待される出力:

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          38s
  3. PVC を表示してディスク ID を取得します。

    kubectl get pvc

    次のコマンド出力は、PVC にバインドされている PV が d-uf628m33r5rsbi****** (クラウドディスクの ID ) であり、容量が 20 GiB であることを示しています。

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf628m33r5rsbi******   20Gi       RWO            disk           <unset>                 64s
  4. アプリケーションのレプリカを 0 にスケールインし、アプリケーションを一時停止します。

    kubectl scale sts disk-test --replicas=0

    期待される出力:

    statefulset.apps/disk-test scaled

手順 2: ディスクのサイズを変更する

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

  2. 左側のナビゲーションウィンドウで、[ストレージとスナップショット] > [ブロックストレージ] を選択します。

  3. 上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。地域

  4. ディスク ID を使用してアプリケーションに接続されているディスクを見つけ、ディスクを選択し、ページの下部にある [サイズ変更] をクリックします。

  5. 表示されるウィザードページで、指示に従ってサイズ変更操作を完了します。

    • [ディスクの決定と注意事項の確認] ステップで、ディスク情報を確認し、注意事項を読み、[リスクを理解し、データをバックアップしました。続行します。] をクリックします。

    • [サイズ変更方法と新しいサイズの構成] ステップで、パラメータを構成し、[OK] をクリックします。

      パラメータ

      説明

      [新しいディスクサイズ]

      ディスクの容量を指定します。値は現在のディスクサイズより小さくすることはできません。

      30 GiB

      [サイズ変更方法]

      アプリケーションが一時停止されると、ディスクは [保留中] 状態になります。この場合、[オフラインサイズ変更] のみを選択できます。

      オフラインサイズ変更

    • [サイズ変更結果の確認] ステップで、ディスクのサイズが変更されたことを確認し、[次のステップ、パーティションとファイルシステムの拡張] をクリックします。

    • [パーティションとファイルシステムの拡張] ステップで、[ドキュメントを使用する] を選択し、[パーティションとファイルシステムの拡張 ( Linux )] セクションのファイルを表示します。

      説明
      • ディスクのサイズを変更した後、ファイルシステムを拡張してアプリケーションのストレージ容量を更新する必要があります。

      • ディスクが [保留中] 状態であるため、[ Cloud Assistant を使用する] オプションを選択できません。ファイルシステムを手動でサイズ変更できます。

手順 3: ファイルシステムを拡張する

次の操作は、パーティション化されていないディスクに対して実行されます。

重要

Kubernetes ではパーティション化されたディスクを使用しないことをお勧めします。

  1. ECS インスタンスにディスクを接続します。

    1. ECS コンソール[ブロックストレージ] ページで、マウントするディスクを見つけ、[アクション] 列の [接続] をクリックします。

    2. [クラウドディスクの接続] ページで、接続する ECS インスタンスを選択し、[次へ] をクリックします。

      重要

      ディスク関連の解放動作は選択しないでください。

    3. [ディスクのパーティション分割とファイルシステムの作成とマウント] ページで、[初期化方法] セクションの [後で構成する] をクリックします。

    4. ディスクの状態が [使用中] に変わることを確認します。

  2. ECS インスタンスに接続します。詳細については、「ECS インスタンスに接続する方法」をご参照ください。

  3. ディスクのデバイス識別子を取得します。

    次のサンプルコマンドが使用されます。 <serial> は、ディスクのシリアル番号を示します。ビジネス要件に基づいてシリアル番号を置き換えます。

    ディスク ID を使用して、ディスクのシリアル番号 (ディスク ID = d - {ディスクシリアル番号} ) をすばやく確認できます。詳細については、「ブロックストレージデバイスのシリアル番号を照会する」をご参照ください。

    重要

    2020 年 6 月 10 日より前に作成されたディスクの場合、シリアル番号機能はサポートされていません。次のコマンドを実行してディスクのデバイス識別子を取得することはできません。ディスクを接続する前後に ls /dev/vd* コマンドを実行して、ディスクリストを表示できます。次に、コマンド出力の差分を比較して、ターゲットディスクのデバイス識別子を確認します。

    realpath /dev/disk/by-id/virtio-<serial>

    次のサンプル出力が返されます。これは、デバイス識別子が /dev/vdb であることを示しています。

    /dev/vdb
  4. ファイルシステムのサイズを変更します。

    次のサンプルコマンドが使用されます。値を実際のディスクデバイス識別子に置き換えます。

    resize2fs /dev/vdb

    次のエラーメッセージが返された場合は、プロンプトに従って e2fsck -f /dev/vdb コマンドを実行してから、resize2fs /dev/vdb コマンドを実行してファイルシステムのサイズを変更します。

    resize2fs 1.46.0 (29-Jan-2020)
    Please run 'e2fsck -f /dev/vdb' first.

    ファイルシステムのサイズを変更すると、次のコマンド出力が表示されます。

    resize2fs 1.46.0 (29-Jan-2020)
    Resizing the filesystem on /dev/vdb to 7864320 (4k) blocks.
    The filesystem on /dev/vdb is now 7864320 (4k) blocks long.
  5. ファイルシステムのサイズが変更されていることを確認します。

    1. 次のコマンドを実行して、/mnt/disk/ という名前の一時フォルダを作成し、ディスクをフォルダにマウントします。

      mkdir /mnt/disk
      mount /dev/vdb /mnt/disk/
    2. ファイルシステムのサイズを確認します。

      df /mnt/disk/

      コマンド出力は、/dev/vdb の容量が 30 GiB に拡張されたことを示しています。

      Filesystem     1K-blocks  Used Available Use% Mounted on
      /dev/vdb        30787536    24  30771128   1% /mnt/disk
    3. 一時フォルダからディスクをアンマウントします。

      umount /mnt/disk
  6. ECS インスタンスからディスクをデタッチします。詳細については、「データディスクをデタッチする」をご参照ください。

手順 4: アプリケーションを再起動する

  1. アプリケーションのサイズを 1 つのレプリカに変更し、アプリケーションを再起動します。

    kubectl scale sts disk-test --replicas=1

    期待される出力:

    statefulset.apps/disk-test scaled
  2. ポッドが復元されているかどうかを確認します。

    kubectl get pod

    期待される出力:

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          5s
  3. ファイルシステムのサイズを確認します。

    kubectl exec -it disk-test-0 -- df /data

    コマンド出力は、マウントパスに対応するファイルシステムのサイズが変更されたことを示しています。

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