この概要ページでは、Google Distributed Cloud(GDC)のエアギャップ Kubernetes クラスタのコンテナ ワークロードの運用モデルについて説明します。GDC は、Google Kubernetes Engine(GKE)上で広く使用され、サポートされている Kubernetes ネイティブのコンテナ アプリケーションをサポートするマネージド Kubernetes サービスを提供します。
このページは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
切断された環境向けの Kubernetes アプリケーション
GKE on GDC は、多くの GKE 機能をデフォルトで GDC ユニバースに組み込むマネージド Kubernetes サービスです。このサービスを使用すると、オープンソースの Kubernetes を自分でインストール、アップグレード、統合、実行する必要がなくなります。提供された Kubernetes ディストリビューションは、宣言型でべき等な他の Kubernetes サービスと同様に、標準の KRM API を使用して運用および保守できます。同様に、GDC 上の GKE は、GDC コンソール、gdcloud CLI、Terraform から提供されます。GDC Kubernetes クラスタの詳細については、Kubernetes クラスタの概要をご覧ください。Kubernetes の主なコンセプトの詳細については、Kubernetes の学習を開始するの GKE ドキュメントをご覧ください。
コンテナ ワークロードの状態
GDC のコンテナは、次のように Kubernetes クラスタにデプロイされます。
コンピューティング要件の進化に合わせて、クラスタのプロビジョニング後でも、コンテナ ワークロードの要件に基づいて GDC Kubernetes クラスタノードをスケールアウトできます。
Kubernetes には、目的のコンテナ アプリケーションの状態を実現するための組み込みワークロード リソースがいくつか用意されています。詳細については、Kubernetes のワークロードのドキュメントをご覧ください。
ステートレス ワークロード
ステートレス ワークロードは、データやアプリケーションの状態を Kubernetes クラスタや永続ストレージに保存しないアプリケーションです。代わりに、データとアプリケーションの状態はクライアントに保持されるため、ステートレス アプリケーションはスケーラビリティが高くなります。たとえば、フロントエンド アプリケーションはステートレスにできます。複数のレプリカをデプロイして可用性を高め、需要が低いときにはスケールダウンします。これらのレプリカは一意の ID を必要としません。
Kubernetes は、Deployment
リソースを使用して、ステートレス アプリケーションを一意でない同一の Pod としてデプロイします。Deployment は、次のようなアプリケーションの望ましい状態を管理します。
- アプリケーションを実行する Pod の数。
- 実行するコンテナ イメージのバージョン。
- Pod のラベル。
Deployment
リソースの Pod
仕様を更新することで、望ましい状態を動的に変更できます。
ステートレス アプリケーションは、永続ストレージを使用してデータとアプリケーションの状態を保存するステートフル ワークロードとは対照的です。
ステートフル ワークロード
ステートフル ワークロードは、サーバー、クライアント、その他のアプリケーションが使用するデータを永続ディスク ストレージに保存するアプリケーションです。ステートフル アプリケーションの例としては、他のアプリケーションがデータの保存先および取得元として使用するデータベースや Key-Value ストアが挙げられます。ステートフル アプリケーションで使用する永続ストレージをプロビジョニングする必要があります。
Kubernetes は、StatefulSet
リソースを使用してステートフル アプリケーションをデプロイします。StatefulSet
リソースの Pod に互換性はありません。各 Pod には、スケジュールされた場所に関係なく維持される一意の識別子があります。
ステートフル アプリケーションは、クライアント データがセッション間でサーバーに保存されないステートレス ワークロードとは異なります。
コンテナの永続ストレージ
GDC は、PersistentVolumeClaim
(PVC)オブジェクトを介して永続ブロック ストレージとファイル ストレージを提供します。PVC は、Pod
オブジェクトによって参照されるストレージに対するリクエストです。Pod は、ストレージとネットワーク リソースを共有する 1 つ以上のコンテナのグループです。PVC には Pod とは独立したライフサイクルがあるため、単一の Pod を超えて存続できます。
ステートフル ワークロードの永続ストレージを動的にプロビジョニングして、基礎となるボリュームをオンデマンドで作成できます。GDC では、次のいずれかの事前インストールされた StorageClass
オブジェクトを作成して、動的プロビジョニングを構成します。
standard-rwo
:ReadWriteOnce
(RWO)ブロック ストレージ クラス。ボリュームにアクセスできるのは、一度に 1 つのノードのみです。このストレージ クラスでは、1 秒あたりの入出力オペレーション(IOPS)の保証と上限が 1 GiB あたり 3 IOPS に設定されています。system-performance-rwo
:ReadWriteOnce
パフォーマンス ブロック ストレージ クラス。このストレージ クラスは、RWO ストレージのパフォーマンスが向上したバージョンです。IOPS の保証と上限は GiB あたり 30 IOPS です。
また、VolumeSnapshot
オブジェクトを作成して、完全に新しいボリュームを作成せずに、特定の時点でのコンテナ アプリケーションのストレージ ボリュームをコピーすることもできます。たとえば、データベース管理者は、編集や削除の変更を行う前に、ボリューム スナップショットを作成してデータベースをバックアップできます。