ボリューム拡張の使用

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

前提条件

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

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

ボリューム拡張の使用

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

  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 フィールドを編集して、ボリューム容量の変更をリクエストします。たとえば、次の 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
    ...
    

次のステップ