GatewayClass の機能


このページでは、Google Kubernetes Engine(GKE)で利用可能な GatewayClass リソースとサポートされている仕様について説明します。

表の凡例

このページの表では次の凡例を使用しています。

  • は、フィールドがサポートされていることを示します。
  • - は、フィールドがサポートされていないことを示します。
  • GKE がこのフィールドの一部の値をサポートしている場合は、どの値がサポートされているのかを表に示します。

GatewayClass の機能

次の表に、GKE で使用可能な GatewayClass リソースの機能を示します。

アーキテクチャ

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
GKE Gateway Controller Google がホストする Gateway Controller
ロケーション Google Cloud インフラストラクチャ
プラットフォーム GKE
クラスタタイプ GKE Autopilot または GKE Standard
クラスタのスコープ 単一クラスタ マルチクラスタ 単一クラスタ マルチクラスタ 単一クラスタ マルチクラスタ 単一クラスタ マルチクラスタ
GKE バージョン GKE Autopilot: 1.26 以降
GKE Standard: 1.24 以降
API のタイプ CRD
CRD バージョン 新しいクラスタとクラスタのアップグレード:
GKE 1.24~1.27.10、1.28.4、1.29.0: 0.7.0
GKE 1.27.10 以降、1.28.4 以降、1.29.0~1.29.2: 0.8.1
GKE 1.29.3-gke.1282001、1.30.0-gke.1000000 以降: 1.0.0
API バージョン gateway.networking.k8s.io/v1beta1(CRD バージョン: 0.7.0 以降、1.0.0 を含む)
gateway.networking.k8s.io/v1(CRD バージョン: 1.0.0 以降)
API の有効化 GKE Autopilot: デフォルトで有効
リリース ステージ 一般提供

マルチクラスタ サービス

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
必須
API のバージョン net.gke.io/v1 net.gke.io/v1 net.gke.io/v1 net.gke.io/v1
リソースの種類 ServiceExport ServiceExport ServiceExport ServiceExport

ロードバランサ

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
タイプ グローバル外部アプリケーション ロードバランサ リージョン外部アプリケーション ロードバランサ 内部アプリケーション ロードバランサ 従来のアプリケーション ロードバランサ
ロードバランサのスコープ グローバル リージョン リージョン グローバル
コンテナ ネイティブのロード バランシング (デフォルト、GCE_VM_IP_PORT ゾーン NEG を使用)

VPC

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
共有 VPC のサポート 同じ共有 VPC ホストまたはサービス プロジェクト内のすべてのクラスタとフリート ホスト プロジェクト
複数ルートの共有ゲートウェイ / Ingress
自動化された VPC ファイアウォール ライフサイクル管理
注: 共有 VPC 環境の Gateway には、ファイアウォール ルールを手動でデプロイする必要があります。
詳細については、Gateway に必要なファイアウォール ルールをご覧ください。

Gateway IP アドレス

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Gateway IP アドレスの割り当て 静的または動的
Network Service Tiers の IP アドレス プレミアム ティア スタンダード ティア プレミアム ティア プレミアム ティア
ゲートウェイ IP アドレスのネットワーク到達性 インターネット インターネット VPC 内部 インターネット
複数のポート(HTTP、HTTPS)に同じ IP アドレスを使用

ルーティングとトラフィック管理

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
グローバル アクセス グローバル ロードバランサの暗黙的な設定 グローバル ロードバランサの暗黙的な設定 グローバル ロードバランサの暗黙的な設定
クロスリージョン バックエンド ロード バランシング
プロジェクト間のロード バランシング バックエンド サービスと NEG は同じプロジェクト内に存在する必要があります
(GKE Gateway Controller で管理)
Namespace をまたがるルーティング
ホスト / パスのルーティング 接頭辞、完全一致
ヘッダーベースのルーティング 完全一致
パスのリダイレクト
URL の書き換え
トラフィック分割
トラフィックのミラーリング
トラフィックのカットオーバー
トラフィック ベースの自動スケーリング プレビュー プレビュー プレビュー プレビュー
カスタム リクエスト ヘッダー
カスタム レスポンス ヘッダー

フロントエンドのセキュリティ

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
SSL ポリシー
HTTP から HTTPS へのリダイレクト
複数の TLS 証明書のサポート
Kubernetes Secret ベースの証明書
セルフマネージド Compute Engine SSL 証明書
Google マネージド Compute Engine SSL 証明書
Certificate Manager を使用したセルフマネージド SSL 証明書
Certificate Manager を使用した Google マネージド SSL 証明書



バックエンド サービスのプロパティ

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
コネクション ドレインのタイムアウト
セッション アフィニティ
HTTP アクセス ロギングの構成
バックエンド サービスのタイムアウト
カスタムのロードバランサのヘルスチェック構成
バックエンド サービスへの TLS
サポートされているバックエンド サービス プロトコル HTTP、HTTPS、HTTP/2
カスタムのデフォルト バックエンド

その他の Google Cloud サービス

機能 gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
Identity-Aware Proxy(IAP)
Google Cloud Armor バックエンド セキュリティ ポリシー
Cloud CDN

サポートされている Gateway API フィールド

次の表に、GKE でサポートされている Gateway API 仕様のフィールドを示します。

ゲートウェイ

spec.addresses

詳細については、Gateway のドキュメントで spec.addresses をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
type NamedAddress
value 静的グローバル外部アドレス 静的リージョン外部アドレス 静的リージョン内部アドレス 静的グローバル外部アドレス

spec.listeners

詳細については、Gateway のドキュメントで spec.listeners をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
protocol HTTP、HTTPS
port 80 または 8080(HTTP)、443(HTTPS)
name
hostname
tls
allowedRoutes

spec.listeners.tls

詳細については、Gateway のドキュメントで spec.listeners.tls をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
mode Terminate
certificateRefs

spec.listeners.tls.options

詳細については、Gateway のドキュメントで spec.listeners.tls.options をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
networking.gke.io/pre-shared-certs グローバル SSL 証明書リソースのリファレンス(セルフマネージドまたは Google マネージド) リージョン、セルフマネージド SSL 証明書リソースのリファレンス リージョン、セルフマネージド SSL 証明書リソースのリファレンス グローバル SSL 証明書リソースのリファレンス(セルフマネージドまたは Google マネージド)

HTTPRoute

次の表に、GKE でサポートされている HTTPRoute API 仕様の値を示します。

spec.parentRefs

詳細については、Gateway のドキュメントで spec.parentRefs をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
parentRefs.group
parentRefs.kind
parentRefs.namespace
parentRefs.name
parentRefs.sectionName
parentRefs.port

spec.hostnames

詳細については、Gateway のドキュメントで spec.hostnames をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
precise, wildcard

spec.rules

詳細については、Gateway のドキュメントで spec.rules をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
path.type Exact, PathPrefix
path.value
headers.type Exact
headers.name
headers.value
queryParams
method

spec.rules.backendRefs

詳細については、Gateway のドキュメントで spec.rules.backendRefs をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
backendRef.group (empty), gateway.networking.k8s.io, net.gke.io
backendRef.kind Service ServiceImport Service ServiceImport Service ServiceImport Service ServiceImport
backendRef.name
backendRef.namespace
backendRef.port
backendRef.weight
backendRef.filters

spec.rules.filters

詳細については、Gateway のドキュメントで spec.rules.filters をご覧ください。

フィールド gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc gke-l7-gxlb gke-l7-gxlb-mc
type requestHeaderModifier, responseHeaderModifier, requestMirror, requestRedirect, urlRewrite
requestHeaderModifier.add
requestHeaderModifier.remove
requestHeaderModifier.set
responseHeaderModifier.add
responseHeaderModifier.remove
responseHeaderModifier.set
requestMirror.backendRef
requestRedirect.scheme HTTP, HTTPS
requestRedirect.hostname
requestRedirect.path replaceFullPath, replacePrefixMatch
requestRedirect.port
requestRedirect.statusCode
urlRewrite.hostname
urlRewrite.path replacePrefixMatch