コントロールプレーン¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. アンビエントモードのコントロールプレーン¶
仕組み¶
istiod は、Kubernetes リソースや Istio のカスタムリソースの設定値を xDS API で ztunnel と waypoint-proxy に配布し、ztunnel には各 Pod の ServiceAccount に対応する証明書を発行する。
Envoy の設定値への変換¶
ztunnel は Envoy プロセスではないため、Envoy の Listener と Cluster による処理は waypoint-proxy が担う。
送信元 ztunnel はアウトバウンド通信を透過的に捕捉し、HBONE トンネルを介して waypoint-proxy に中継する。
(たぶん) waypoint-proxy の Envoy の L7 処理では、以下のように設定値が機能している。
- inbound_CONNECT_terminate Listener:HBONE を経由したリクエストを受信する
- Internal Inbound VIP Cluster:Inbound VIP Listener にルーティングする
- Inbound VIP Listener:VirtualService のルーティングポリシーを適用する
- Inbound VIP Cluster:Inbound Pod Listener にロードバランシングする
- Inbound Pod Listener:HBONE のメタデータをセットアップする
- Inbound Pod Cluster
- inbound_CONNECT_originate Listener
- inbound_CONNECT_originate Cluster:宛先 ztunnel を決める
宛先 ztunnel は waypoint-proxy から HBONE トンネルを介して通信を受信し、宛先マイクロサービスに中継する。