ボリューム拡張の使用


Google Kubernetes Engine(GKE)バージョン 1.24 以降では、Kubernetes ボリューム拡張機能を使用して、永続ボリュームの作成後に容量を変更できます。

ボリューム拡張の詳細については、オープンソースの Kubernetes ドキュメントをご覧ください。

前提条件

ボリューム拡張には次の前提条件があります。

  • サイズを変更するボリュームが CSI ドライバによって管理されている場合:
    • GKE クラスタのバージョンが 1.16 以上であることを確認します。クラスタに Windows ノードプールがある場合は、GKE クラスタのバージョンが 1.18 以降であることを確認します。マネージド GKE Filestore CSI ドライバを使用している場合は、クラスタのバージョンが 1.21 以降である必要があります。
    • ストレージ ベンダーのドキュメントで、CSI ドライバがボリューム拡張をサポートしていることを確認します。Compute Engine Persistent Disk の CSI ドライバと Filestore CSI ドライバは、ボリューム拡張をサポートしています。
  • サイズを変更するボリュームがツリー内ボリューム プラグインによって管理されている場合:
    • GKE クラスタのバージョンが 1.11 以上であることを確認します。GKE クラスタ バージョン 1.11-1.14 では、ツリー内プラグインによって管理されているボリュームの拡張をサポートしますが、ボリューム拡張を完了するには、ボリュームを使用するすべての Pod を終了する必要があります。
    • ストレージ ベンダーのドキュメントを参照して、ツリー内ボリューム プラグインがボリューム拡張をサポートしていることを確認します(Compute Engine Persistent Disk のプラグインはサポートしています)。

ボリューム拡張の使用

ボリューム拡張を使用するには、次の操作を行います。

  1. StorageClass にまだフィールドがない場合は、allowVolumeExpansion: true を StorageClass に追加します。次に例を示します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: standard
    provisioner: my.driver
    ...
    allowVolumeExpansion: true
    
  2. PersistentVolumeClaim の spec.resources.requests.storage フィールドを編集して、ボリューム容量の変更をリクエストします。

     kubectl edit pvc pvc-name
    

    たとえば、次の PVC のディスクを 30 ギビバイト(GiB)から 40 GiB に変更できます。

    編集前:

     # pvc-demo.yaml
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: pvc-demo
     spec:
       accessModes:
         - ReadWriteOnce
       resources:
         requests:
           storage: 30Gi
    

    編集後:

     # pvc-demo.yaml
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: pvc-demo
     spec:
       accessModes:
         - ReadWriteOnce
       resources:
         requests:
           storage: 40Gi
    
  3. PVC を表示して変更を確認します。PVC を表示するには、次のコマンドを実行します。

    kubectl get pvc pvc-name -o yaml
    

    最終的に、status.capacity フィールドに新しいボリュームが表示されます。例:

    ...
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 40Gi
      storageClassName: standard
      volumeMode: Filesystem
      volumeName: pvc-078b7484-cc8d-4077-9bcb-2c17d8d4550c
    status:
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: 40Gi
    ...
    

PersistentVolume の容量を直接変更すると、コンテナ ファイルシステムが不正になる可能性があります。これらの問題を解決するには、ボリューム拡張の変更のトラブルシューティングをご覧ください。

次のステップ