GKE アンビエント ネットワーキングは、レイヤ 4 機能を備えたサービス メッシュに、簡素化されたサイドカーレス デプロイ モデルを提供します。プロキシ機能を GKE Dataplane V2(DPv2)に統合されたノードレベルのコンポーネントに移動することで、アンビエント ネットワーキングはリソース オーバーヘッドを削減し、プロキシ更新のためのワークロードの再起動を不要にし、メッシュのライフサイクル管理を簡素化します。
機能
GKE アンビエント ネットワーキングのプレビューでは、シングルクラスタのレイヤ 4 メッシュ機能がサポートされています。
- 相互 TLS(mTLS): 暗号化された転送と ID 認証を適用します。
- サービス ディスカバリ: サービスを検出し、ワークロード間で接続を自動的にルーティングします。
- レイヤ 4 トラフィック管理: TCP トラフィックのロード バランシングとルーティングを行います。
- レイヤ 4 テレメトリー: ネットワーク トラフィック、接続、エラーの指標を Cloud Observability に出力します。これらの指標の可視化と分析の詳細については、Network Services Monitoring の概要をご覧ください。
アンビエント ネットワーキングのメリット
サイドカーベースのサービス メッシュ アーキテクチャと比較すると、アンビエント ネットワーキングには、運用とリソースに関するいくつかの重要な利点があります。
ライフサイクル管理の簡素化: サイドカー プロキシとアプリケーション コンテナ間の運命共有モデルを排除します。ワークロード Pod を再起動したり、アプリケーションのダウンタイムを発生させたりすることなく、ノードレベルでプロキシの更新、セキュリティ パッチ、アップグレードを適用できます。
リソース消費量の削減: プロキシを共有ノードレベルのインスタンスに統合し、サイドカー モデルと比較して CPU とメモリのオーバーヘッドを最大 90% 削減します。
サイドカーのリスクの排除: コンテナ プロキシ バイパスの脆弱性、スティッキー接続の中断、信頼性の低い接続終了の伝播など、一般的なサイドカーの問題を解決します。
ネイティブ Google Cloud プラットフォーム統合: GKE Dataplane V2(DPv2)、マネージド Workload Identity、Certificate Authority Service(CAS)、Google Cloud Observability とネイティブに統合されます。
相互運用性とスコープ
このアンビエント ネットワーキングのプレビュー期間中は、次のスコープと相互運用性の制約に注意してください。
- Gateway API の要件: アンビエント ネットワーキングには Gateway API が必要です。Istio API はサポートされていません。
- ワークロードの相互運用性: アンビエント ネットワーキングに登録されたワークロードは、サイドカーが挿入されたワークロード(GKE、Compute Engine、Cloud Run)またはプロキシレス gRPC ワークロードと相互運用できません。
アーキテクチャとコンポーネント
アンビエント ネットワーキングは、Envoy サイドカーをワークロード Pod に挿入するのではなく、各ノードの GKE Dataplane V2(DPv2)に直接統合されます。
既存のコントロール プレーン コンポーネント
アンビエント ネットワーキングは、コントロール プレーン コンポーネントに依存して、ポリシーの配布、構成の変換、証明書の発行を行います。
- Traffic Director: ポリシーの配布とルーティング構成用の xDS コントロール プレーンを提供します。
- GKE Gateway Controller: Kubernetes カスタム リソースを Traffic Director 構成に変換します。
- Certificate Authority Service(CAS): マネージド Workload Identity を使用して、ワークロードの X.509 ID 証明書を発行します。
- GKE クラスタ コントロール プレーン: 証明書署名リクエスト(CSR)を承認し、CAS にルーティングします。
ノード コンポーネント
アンビエント ネットワーキングでは、各クラスタノードでワークロード トラフィックを直接インターセプトしてプロキシするために、ノードごとに次のコンポーネントがインストールされます。
GKE アンビエント NRI プラグイン: Pod トラフィックをインターセプトしてプロキシにリダイレクトするように低レベル ネットワーキングを構成する Node Resource Interface(NRI)プラグイン。
GKE アンビエント プロキシ: リスニング ソケットを管理し、Traffic Director から xDS ルールを受信し、GKE コントロール プレーンからオンデマンドで X.509 ID 証明書を取得し、レイヤ 4 トラフィックをプロキシするノードレベルのプロキシ。
ノードレベルのアンビエント データプレーン コンポーネントは、gke-managed-ambient Namespace で DaemonSet として実行され、GKE コントロール プレーンとともに自動的にバージョニング、パッチ適用、アップグレードが行われます。
ターゲット スケールと上限
プレビュー期間中、アンビエント ネットワーキングには次のスコープと相互運用性の制限があります。
| リソース指標 | GKE DPv2(アンビエントあり) | 標準の GKE DPv2(アンビエントなし) |
|---|---|---|
| クラスタあたりのノード数 | 500 | 7,500 |
| クラスタあたりの Service 数 | 300 | 10,000 |
| クラスタあたりの Pod 数 | 5,000 | 200,000 |
| ノードあたりの最大 Pod 数 | 256 | 256 |
一般的な GKE クラスタの割り当てについては、クラスタの上限と GKE GKE Dataplane V2 の仕様をご覧ください。
料金
アンビエント ネットワーキングの料金と運用リソースの料金に関する詳細は、以下をご覧ください。
- アンビエント ラベル
networking.gke.io/dataplane-mode=ambientが付いた Namespace 内のすべての Pod には、1 時間あたり $0.004(1 分あたり $0.00006667、1 か月あたり約 $2.90)が課金されます。プレビュー期間中は課金されません。 - Cloud Observability(Cloud Monitoring / Cloud Logging)と Certificate Authority Service の標準の使用料金が適用されます。
Gateway API リソースについて
アンビエント ネットワーキングを使用すると、クラスタで管理する Kubernetes Gateway API カスタム リソースが、一連のマネージドGoogle Cloud API リソースに自動的に変換されます。
| 機能 | マネージド Google Cloud API リソース | 範囲 | カーディナリティ |
|---|---|---|---|
| Mesh | Mesh |
リージョン | クラスタごとに 1 つ |
| サービス ルーティング | TCPRoute |
リージョン | クラスタごとに 1 つ、GCPClientTLSPolicy の対象となる Service ごとに 1 つ |
| サービス表現 | BackendService |
リージョン | クラスタごとに 1 つ |
| クライアント認証 | ClientTlsPolicy |
リージョン | クラスタごとに 1 つ |
| サーバー認証 | ServerTlsPolicy |
リージョン | クラスタあたり 3 |
| サーバー認証 | EndpointPolicy |
リージョン | GCPServerTLSPolicy ごとに 1 つ、さらに portOverrides 内の個別の mTLS モードごとに 1 つ |
| 承認 | AuthzPolicy |
リージョン | enforcementLevel: L4 を使用する各 GCPAuthzPolicy の Pod targetRef ごとに 1 つ |
| 下り(外向き)ルーティング | EgressRouting |
リージョン | GCPEgressPolicy を持つ Namespace ごとに 1 つ |