このページは、ロードバランサをデプロイして Google Kubernetes Engine(GKE)クラスタのフリート全体にトラフィックを分散させるための最適な API を選択するのに役立ちます。
次の方法で、ロードバランサを GKE クラスタのフリートにアタッチできます。
マルチクラスタ Ingress リソースや MultiClusterService リソースなどのマルチクラスタ Ingress API を使用します。
Gateway API(GatewayClass、Gateway、HTTPRoute、Policy、ServiceExport、ServiceImport のリソース)を使用します。
Google Cloud コンソール、gcloud CLI、API、Terraform、Config Connector を使用してアプリケーション ロードバランサを設定し、スタンドアロン NEG をユーザー管理のバックエンド サービスにアタッチします。
次の表は、GKE クラスタのフリートにロードバランサをアタッチするさまざまな方法を示しています。ロードバランサの機能比較ページに記載されている機能のうち、次の表に記載されていない機能は、ロード バランシング用の Kubernetes ネイティブ API に依存するものではなく、スタンドアロン NEG を使用するユーザー管理のロードバランサで動作します。
ソリューション | マルチクラスタ Ingress | マルチクラスタ Gateway | スタンドアロン NEG を使用するユーザー管理のロードバランサ |
---|---|---|---|
GKE プラットフォーム サポート | |||
プロダクトのリリース ステージ | 一般提供 | 一般提供 | 一般提供 |
GKE エディション | Enterprise / Standard | Enterprise / Standard | Enterprise / Standard |
クラスタモード | Standard / Autopilot | Standard / Autopilot | Standard / Autopilot |
GKE バージョン | 1.18 以降 | GKE 1.24 以降(Standard の場合)、1.26 以降(Autopilot の場合) | 1.18 以降 |
アーキテクチャとコンポーネント | |||
Google マネージド Kubernetes コントローラ | |||
コントローラ | GKE マルチクラスタ Ingress コントローラ | GKE Gateway Controller | - |
コントローラの場所 | クラスタ外 (Google Cloud インフラストラクチャ) |
クラスタ外 (Google Cloud インフラストラクチャ) |
- |
API | Kubernetes ネイティブ API | Kubernetes ネイティブ API | Google Cloud API(gcloud CLI) |
API リソース | MultiClusterIngress、MultiClusterService | GatewayClass、Gateway、HTTPRoute、*Policy | - |
API リリース ステージ | 一般提供(v1) | 一般提供(v1) | - |
GKE での API の有効化 | Autopilot / Standard の両方でクラスタ設定 | Autopilot ではデフォルト
Standard ではクラスタ設定 |
- |
マルチクラスタ サービスのサポート | |||
マルチクラスタ サービス(MCS)が必要か | |||
MCS API バージョン | networking.gke.io/v1 | net.gke.io/v1 | - |
リソースの種類 | MultiClusterService | ServiceExport | - |
ライセンス | プロプラエタリ | オープンソース | - |
クラウド ネットワーキング リソースのライフサイクル管理(共有 VPC を除く) | |||
自動化されたフロントエンド IP アドレスの管理 | |||
自動化された Cloud ロードバランサの管理
|
|||
自動化されたネットワーク エンドポイント グループ(NEG)の管理 |
(ゾーン NEG のみ) |
(ゾーン NEG のみ) |
(ゾーン NEG のみ。Kubernetes Service ではアノテーションが必要) |
Cloud NGFW の管理 | |||
共有 VPC のサポート | |||
ホスト プロジェクトのクラスタとフリート(ハブ) | |||
同じサービス プロジェクトのクラスタとフリート(ハブ) |
(ホスト プロジェクトにファイアウォール ルールの権限がある) |
||
異なるプロジェクト内のクラスタとフリート(ハブ) |
(プロジェクト間サービス参照を使用) |
||
ロードバランサのサポート | |||
アプリケーション ロードバランサ | |||
従来 | |||
グローバル外部 | |||
リージョン外部 | |||
リージョン内部 | |||
クロスリージョン内部 | |||
プロキシ ネットワーク ロードバランサ | |||
従来 | |||
グローバル外部 | |||
リージョン外部 | |||
内部(常にリージョン) | |||
パススルー ネットワーク ロードバランサ | |||
外部(常にリージョン) | |||
内部(常にリージョン) | |||
クライアントとロードバランサの間のプロトコルのサポート | |||
HTTP、HTTPS、HTTP/2 | |||
WebSocket | |||
HTTP/3(IETF QUIC に基づく) | |||
SSL(TLS)または TCP | |||
ロードバランサのバックエンド サポート | |||
Pod(ゾーン NEG) | |||
仮想マシン(GKE ノードを含む) |
(推奨されません) |
||
その他のバックエンド:
|
|||
ロードバランサとバックエンドの間のプロトコルのサポート | |||
HTTP、HTTPS、HTTP/2(いずれか 1 つ) | |||
WebSocket | |||
SSL(TLS)または TCP(いずれか 1 つ) | |||
IP アドレス指定とプロトコル | |||
動的 IP アドレスの割り当て | |||
静的 IP アドレスの割り当て | |||
複数のポート(HTTP、HTTPS)に同じ IP アドレスを使用 | |||
IPv6 |
(ロードバランサとバックエンドの間のトラフィックは IPv4 のまま) |
(ロードバランサとバックエンドの間のトラフィックは IPv4 のまま) |
(ロードバランサとバックエンドの間のトラフィックは IPv4 のまま) |
ルーティングとトラフィック管理 | |||
グローバル アクセス | |||
プロジェクト間のロード バランシング | |||
ホスト / パスのルーティング |
(接頭辞、完全一致) |
(接頭辞、完全一致) |
|
ヘッダーベースのルーティング |
(完全一致) |
||
パスのリダイレクト | |||
URL の書き換え | |||
トラフィック分割 | |||
トラフィックのミラーリング | |||
トラフィックのカットオーバー | |||
トラフィック ベースの自動スケーリング | |||
カスタム リクエスト ヘッダー | |||
カスタム レスポンス ヘッダー | |||
Namespace をまたがるルーティング | |||
フロントエンドのセキュリティ | |||
SSL ポリシー | |||
HTTP から HTTPS へのリダイレクト | |||
複数の TLS 証明書のサポート | |||
Kubernetes Secret ベースの証明書 | |||
セルフマネージド SSL 証明書 | |||
Google マネージド SSL 証明書 | |||
Certificate Manager のサポート | |||
バックエンド サービスのプロパティ | |||
コネクション ドレインのタイムアウト | |||
セッション アフィニティ | |||
HTTP アクセス ロギングの構成 | |||
バックエンド サービスのタイムアウト | |||
カスタムのロードバランサのヘルスチェック構成 | |||
バックエンド サービスへの TLS | |||
カスタムのデフォルト バックエンド | |||
Cloud CDN |
(一部の機能は除く) |
(すべての機能) |
|
Identity-Aware Proxy(IAP) | |||
Google Cloud Armor セキュリティ ポリシー |
次のステップ
- マルチクラスタ Ingress を設定する。
- クラスタ間で Ingress をデプロイする。
- マルチクラスタ ゲートウェイを有効にする。
- マルチクラスタ ゲートウェイをデプロイする。
- スタンドアロン ゾーン NEG によるコンテナ ネイティブのロード バランシング。