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 のプラグインはサポートしています)。
ボリューム拡張の使用
ボリューム拡張を使用するには、次の操作を行います。
StorageClass にまだフィールドがない場合は、
allowVolumeExpansion: true
を StorageClass に追加します。次に例を示します。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard provisioner: my.driver ... allowVolumeExpansion: true
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
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 の容量を直接変更すると、コンテナ ファイルシステムが不正になる可能性があります。これらの問題を解決するには、ボリューム拡張の変更のトラブルシューティングをご覧ください。
次のステップ
- ボリュームについて学習する。
- Kubernetes を使用した永続ボリュームのサイズ変更について学習する。