このページは、ロードバランサをデプロイして 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 プラットフォーム サポート | |||
| プロダクトのリリース ステージ | GA | GA | GA |
| クラスタモード | 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 によるコンテナ ネイティブのロード バランシング。