GKE のマルチクラスタ ロード バランシング API を選択する


このページは、ロードバランサをデプロイして Google Kubernetes Engine(GKE)クラスタのフリート全体にトラフィックを分散させるための最適な API を選択するのに役立ちます。

次の方法で、ロードバランサを GKE クラスタのフリートにアタッチできます。

  1. マルチクラスタ Ingress リソースや MultiClusterService リソースなどのマルチクラスタ Ingress API を使用します。

  2. Gateway API(GatewayClassGatewayHTTPRoutePolicyServiceExportServiceImport のリソース)を使用します。

  3. 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 ロードバランサの管理
  • 転送ルール
  • ターゲット プロキシ
  • URL マップ
  • バックエンド サービス
  • ヘルスチェック
自動化されたネットワーク エンドポイント グループ(NEG)の管理

ゾーン NEG のみ)

ゾーン NEG のみ)

ゾーン NEG のみ。Kubernetes Service ではアノテーションが必要)

Cloud NGFW の管理

VPC ファイアウォール ルールのみ、管理対象ルール

VPC ファイアウォール ルールのみ、管理対象ルール

共有 VPC のサポート
ホスト プロジェクトのクラスタとフリート(ハブ)
同じサービス プロジェクトのクラスタとフリート(ハブ)

ホスト プロジェクトにファイアウォール ルールの権限がある

(ホスト プロジェクトにファイアウォール ルールの権限がある)

異なるプロジェクト内のクラスタとフリート(ハブ)

プロジェクト間サービス参照を使用)

ロードバランサのサポート
アプリケーション ロードバランサ
従来
グローバル外部
リージョン外部
リージョン内部
クロスリージョン内部
プロキシ ネットワーク ロードバランサ
従来
グローバル外部
リージョン外部
内部(常にリージョン)
パススルー ネットワーク ロードバランサ
外部(常にリージョン)
内部(常にリージョン)
クライアントとロードバランサの間のプロトコルのサポート
HTTP、HTTPS、HTTP/2
WebSocket
HTTP/3(IETF QUIC に基づく)
SSL(TLS)または TCP
ロードバランサのバックエンド サポート
Pod(ゾーン NEG)
仮想マシン(GKE ノードを含む)

推奨されません

その他のバックエンド:
  • Cloud Storage
  • パブリック外部エンドポイント(インターネット NEG)
  • プライベート外部エンドポイント(ハイブリッド NEG)
  • Private Service Connect(PSC NEG)
  • Cloud Run(サーバーレス NEG)
ロードバランサとバックエンドの間のプロトコルのサポート
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 アクセス ロギングの構成
バックエンド サービスのタイムアウト
カスタムのロードバランサのヘルスチェック構成

(BackendConfig)

(HealthCheckPolicy)

(gcloud CLI / Google Cloud コンソール / Terraform)

バックエンド サービスへの TLS
カスタムのデフォルト バックエンド
Cloud CDN

(一部の機能は除く)

(すべての機能)

Identity-Aware Proxy(IAP)
Google Cloud Armor セキュリティ ポリシー

次のステップ