ストレージの概要

Google Kubernetes Engine(GKE)で動作するアプリケーション向けに、いくつかのストレージ オプションがあります。柔軟性と使いやすさの観点から、さまざまなオプションを選択できます。Google Cloud は、さまざまなニーズに特化したストレージ ソリューションを提供します。これら以外にも、Kubernetes には、クラスタにストレージを提供するために使用できるストレージの抽象化機能が用意されています。

マネージド オプション

最も簡単なストレージ オプションは、Google Cloud のマネージド ストレージ プロダクトです。

データベースが必要な場合は、Cloud SQLDatastore、または Cloud Spanner を検討してください。オブジェクト ストレージには Cloud Storage を使用できます。非公開の Docker コンテナ イメージを Container Registry に保存します。

管理されたネットワーク接続ストレージ(NAS)がアプリケーションで必要となる場合は、Cloud Filestore を使用します。POSIX と互換性のあるファイル ストレージが必要な場合は、Compute Engine でファイル サーバーを使用できます。

アプリケーションにブロック ストレージが必要な場合は、永続ディスクを使用します。永続ディスクは手動でプロビジョニングできます。また、Kubernetes でディスクを動的にプロビジョニングすることもできます(次のセクションの永続ボリュームを参照)。

Google Cloud で利用可能なすべてのストレージ ソリューションの一覧と比較については、ストレージ オプションの選択をご覧ください。

Kubernetes のストレージ抽象化

Kubernetes のストレージ抽象化によって、ファイル システムとブロックベースのストレージが Pod に提供されます。ストレージ抽象化は、マネージド データベースや Cloud Storage では使用されません。

ボリューム
ボリュームは、Pod 内のコンテナにアクセス可能なストレージ ユニットです。いくつかのボリューム タイプは、一時ストレージを使用します。一時ストレージ タイプ(emptyDirConfigMapsecrets など)は、Pod が存在しなくなった後は保持されません。これらのタイプは、構成情報を保存する場合や、アプリケーションの一時的な領域として便利です。CPU やメモリリソースと同じ方法で、ローカル一時ストレージ リソースを管理できます。その他のボリューム タイプは耐久性の高いストレージを利用します。
永続ボリューム
PersistentVolume は、Pod で耐久性の高いストレージとして使用できるクラスタ リソースです。PersistentVolumesClaim は、クラスタで使用する Compute Engine の永続ディスクを基盤とする PersistentVolume を動的にプロビジョニングするために使用できます。また、PersistentVolumeClaim を使用して、NFS などの他のタイプのバッキング ストレージをプロビジョニングすることもできます。