跳至主要内容

加權 canary — D1 · D2

條件 3 · 加權分流 — 90% / 10%? — 權重 90% · 正式 → D1 · 權重 10% · canary → D2 (ServiceEntry)

加權 backendRefs · canary (RKE2 guest ingress):HTTPRoute 把請求分流,istio-cni 再依每個目標決定 ztunnel 是否在路徑上。兩條路徑之前都是同一段共用 ingress 主幹

標準 K8s 路由kube-proxy / Calicoistio-cni 攔截ztunnel 代理HBONE / mTLSGateway API 入口HTTPRouteMetalLB LoadBalancerVIP政策未命中 / 繞過
D1 · 90% — 正式流量進 mesh
LINUX 核心空間 · NODE-1使用者空間 · NODE-1核心空間 · 續MESH 目的地命名空間1 · 政策命中 → 轉向istio-cni攔截檢查 · 目標在 mesh 內2 · HBONE/mTLS → 重回核心ztunnel以 HBONE / mTLS 封裝3 · 標準路由kube-proxy轉換為 Pod IP4 · 送達加密流量Calico路由引擎 (CNI)Mesh 目標 Pod接收 HBONE / mTLS 流量
D2 · 10% — canary 至外部 VM
LINUX 核心空間 · NODE-11 · 政策未命中 → 標準路由istio-cni目標 IP 在外部ztunnel閒置 · 已繞過2 · 路由至 gateway / egressCalico路由引擎 (CNI)3 · 明文 TCP實體網卡 / Guest VM 網路離開節點外部目標 VM0 個 mesh 元件

D1 · 90% — 正式流量進 mesh

目的地在 mesh 內 · 政策命中

  • 1istio-cni · 攔截檢查 · 目標在 mesh 內 — 政策命中 → 轉向。
  • 2ztunnel 以 HBONE / mTLS 封裝 — HBONE/mTLS → 重回核心。
  • 3kube-proxy 轉換為 Pod IP — 標準路由。
  • 4Calico 將加密流量送達 Mesh 目標 Pod,該 Pod 接收 HBONE / mTLS 流量。

D2 · 10% — canary 至外部 VM

經 ServiceEntry 的外部目標 · 政策未命中

  • 1istio-cni · 目標 IP 在外部 — 政策未命中 → 標準路由;ztunnel 閒置 · 已繞過。
  • 2Calico 路由至 gateway / egress。
  • 3實體網卡 / Guest VM 網路 — 離開節點;明文 TCP 送往外部目標 VM(0 個 mesh 元件)。