Google Distributed Cloud(GDC)エアギャップは、Google Kubernetes Engine(GKE)Enterprise エディションを備えたマネージド Kubernetes サービスを提供します。これにより、業界標準の Kubernetes 手法を使用してコンテナ ワークロードをデプロイして実行できます。GDC 上の GKE は、GKE Enterprise のコア機能と機能を切断された環境に提供します。GKE on GDC では、今後 GKE Enterprise の機能が追加される予定です。
GDC 上の GKE は、次のようなエンタープライズ機能を提供します。
- マルチクラスタ ライフサイクル管理
- 完全にサポートされている Kubernetes ディストリビューション
- 費用の可視性
- マルチチーム管理
- GitOps ベースの構成管理
- マネージド サービス メッシュ
- ポリシー コントロール
これらの機能はすべて GKE on GDC に標準で付属しており、マネージド Kubernetes サービスによって作成されたクラスタで使用できます。
ドキュメントでは、GKE on GDC クラスタを Kubernetes クラスタまたはクラスタと呼びます。
GDC クラスタのアーキテクチャ
Kubernetes クラスタは論理的に分離され、異なる障害ドメインと分離保証が提供されます。場合によっては、物理的に分離されることもあります。GDC の各組織には、専用の Kubernetes クラスタのセットがあります。次のクラスタタイプは、各組織のワークロードとサービス専用です。
- 組織のインフラストラクチャ クラスタ: 組織のコントロール プレーン コンポーネントとデータ プレーン コンポーネントを実行します。また、コンテナ以外のすべてのワークロードとサービスがデプロイされる管理 API サーバーもホストします。
- Kubernetes クラスタ: 組織のコンテナベースのワークロードを実行します。ワーカーノードの数は、クラスタの使用率によって異なります。ニーズの変化に合わせてスケーリングできます。Kubernetes クラスタは、Distributed Cloud ではユーザー クラスタと呼ばれることもあります。
インフラストラクチャ オペレーター(IO)が組織を作成すると、GDC は組織のインフラストラクチャ クラスタを自動的に生成します。組織インフラストラクチャ クラスタの初期構成は、組織の作成時に設定されます。
管理者は、Kubernetes クラスタを作成して管理します。このトピックのセクションでは、Kubernetes クラスタの管理について説明します。コンテナ化された Kubernetes ワークロードはすべて Kubernetes クラスタで実行されます。Kubernetes クラスタでのコンテナの作成と管理の詳細については、コンテナ ワークロードをデプロイするをご覧ください。
Kubernetes クラスタは、コントロール プレーンとノードと呼ばれるワーカーマシンで構成されます。コントロール プレーンとノードが、Kubernetes クラスタのオーケストレーション システムを構成します。GKE on GDC は、コントロール プレーンやすべてのシステム コンポーネントなど、クラスタの基盤となるインフラストラクチャ全体を管理します。コンテナ化されたワークロードを実行するワーカーノードの管理は、お客様の責任となります。
次の図は、Kubernetes クラスタのアーキテクチャを示しています。
コントロール プレーンについて
コントロール プレーンは、Kubernetes API サーバー、スケジューラ、コアリソース コントローラなどのプロセスを実行します。GKE on GDC は、クラスタの作成から削除までのコントロール プレーンのライフサイクルを管理します。コントロール プレーン上で実行される Kubernetes バージョンのアップグレードも管理の対象になります。アップグレードは GDC によって自動的に行われますが、自動スケジュールの前に手動で行うこともできます。
コントロール プレーンと Kubernetes API
コントロール プレーンはクラスタの統合エンドポイントです。コントロール プレーンは Kubernetes API 呼び出しを介して操作します。コントロール プレーンは、Kubernetes API サーバー プロセス(kube-apiserver
)を実行して API リクエストを処理します。Kubernetes API 呼び出しは次の方法で行います。
- 直接呼び出し: KRM
- 間接呼び出し:
kubectl
などの Kubernetes コマンドライン クライアント、または GDC コンソール。
API サーバー プロセスはクラスタのすべての通信のハブとなります。すべての内部クラスタ コンポーネント(ノード、システム プロセス、アプリ コントローラなど)は、API サーバーのクライアントとして機能します。
API リクエストにより、クラスタ内のオブジェクトに対して「望ましい状態」が Kubernetes に通知されます。Kubernetes は常にその状態を維持しようとします。Kubernetes では、API のオブジェクトを命令型で構成することも、宣言型で構成することもできます。
ワーカーノードの管理
コントロール プレーンは、クラスタのすべてのノードで実行される処理を管理します。コントロール プレーンは、ワークロードをスケジューリングし、ワークロードのライフサイクル、スケーリング、アップグレードを管理します。また、これらのワークロードのネットワーク リソースやストレージ リソースの管理も行います。コントロール プレーンとノードは Kubernetes API を使用して相互に通信を行います。
ノードについて
ノードは、コンテナ化されたアプリケーションと他のワークロードを実行するワーカーマシンです。個々のマシンは、GKE on GDC によって作成される仮想マシン(VM)です。コントロール プレーンは、各ノードから報告されるノードのステータスを管理します。
ノードは、クラスタのワークロードを構成するコンテナをサポートするために必要なサービスを実行します。これにはランタイムと Kubernetes ノード エージェント(kubelet)も含まれます。後者は、コントロール プレーンと通信し、ノード上でスケジュールされたコンテナの起動と実行を行います。
GKE on GDC では、ノードごとのエージェント(DaemonSet)として稼働する多くのシステム コンテナが実行され、ログの収集やクラスタ内のネットワーク接続などの機能を提供しています。
GKE on GDC の制限事項
次の GKE 機能は、GKE on GDC では使用できない制限事項です。
- Connect Gateway
- マルチクラウド クラスタを接続する
- Binary Authorization
- マルチクラスタ データ転送(受信)