GKE Gateway API
Ingress と違って複数 namespace に紐付けられたりするらしい
2022/2/15 時点で v1Alpha1 なため、v1Beta1 までは大幅な変更が想定される。本番で使うことは非推奨
概要
Kubernetes Gateway API の GKE 版実装
Ingress のスーパーセットというイメージ
Ingress にはない機能
マルチ cluster、マルチ namespace
カスタムヘッダーベースのルーティング
トラフィックの重み付け
クラスタとルーティング設定の権限分離
クラスタ管理者とアプリケーション管理者がいたときに、Gateway, HTTPRoute それぞれで RBAC で権限管理できる
Gateway API とは以下のリソースを包含する
GatewayClass
クラスタごとに用意する LB (l4/l7)のテンプレート
Gateway
LB でトラフィックのリッスン設定
HTTPRoute
Gateway → k8s Service のルーティング
header base ルーティングの例
weight 付けルーティングの例
Ingress は Gateway + HTTP Route と対応するリソースになる
また、Preview のため 2022/2/16 時点でまだ色々使えない機能/問題がある
現在、Gateway によって作成された Google Cloud ロードバランサのリソースは Google Cloud Console UI に表示されません。
Google マネージド SSL 証明書の自動生成はサポートされていません
予め手動で作った証明書は利用可能
BackendConfig は利用できるが、GA前に置き換えられるらしい
料金
リージョナルは追加料金無し
マルチクラスタはかかる
感想
現状の機能で実現はできるが、重みの変更やスイッチングは手動で kube apply する感じになる
今後 Gateway API をラップする形で Argo Rollouts とか他のツールが使えるようになるとかはあるかも