土法炼钢兴趣小组的算法知识备份

Istio / 网格控制面内核:从 CRD 到 xDS

文章导航

分类入口
networkkubernetes
标签入口
#istio#xds#istiod#ambient#service-mesh#control-plane#virtualservice#gateway-api

目录

Envoy 数据面系列 已经把消费侧讲清:资源树、ADS、warming、ACK 不等于生效。Service Mesh 给出 sidecar 税与 Ambient 地图。Gateway API 覆盖南北向资源模型。中间仍缺一层:istiod 如何把 CRD / HTTPRoute 编译成某一代理上的 LDS/RDS/CDS/EDS/SDS,推给谁,以及为何「控制面已推送」仍可能黑洞或旧路由。

本系列回答:网格控制面内核里,一次配置变更如何变成可核对的 xDS 图,失败责任落在翻译、推送还是数据面 warming。

写:

不写:architecture/76 税文重写、Gateway API CRD 教程、Envoy Filter/HCM 内核、Cilium eBPF 全书、Istio vs Linkerd 胜负、VirtualService 菜谱、Wasm/EnvoyFilter SDK。

系列状态:01–16 已全部发布(2026-08-11)。 规划见 PLAN.md。无集群 / istiod 环境则不粘贴伪造 istioctl / config_dump 输出。

版本锚定:Istio 1.30.x(源码与文档钉 1.30.3);数据面机制外链 Envoy v1.39.0 系列,不在本系列重写。

适合谁看

与 Envoy 系列 / architecture/76 的分工

维度 Envoy 系列 architecture/76 本系列
定位 数据面代理内核 Mesh 税与形态地图 控制面翻译与推送内核
xDS 消费侧 ACK / warming 名词与产品对照 生产侧编译、订阅、推送图
Ambient 选型边界 草图与代价 ztunnel / waypoint 作为 xDS 客户端
不负责 istiod 全书 CRD→xDS 路径 Filter/HCM;eBPF 全书;税文重写

读法:只要「建立 Mesh 坐标系」→ 76 足够;要「代理卡在哪、warming 为何未完成」→ Envoy;要「控制面推了什么、推给谁、NACK 谁负责」→ 本系列 01 → 04 → 06 → 11 → 15。

一、这个领域最值得关注的 5 个问题

  1. 高层 CRD 如何变成某一个代理上的 LDS/RDS/CDS/EDS/SDS 图? → 第 1、5–9 篇。
  2. 什么叫一次 push、谁在订阅,「控制面已推送」为何不等于「Envoy 在服务」? → 第 4、10–11、15 篇。
  3. sidecar / ztunnel / waypoint / Gateway 作为 xDS 客户端差在哪? → 第 3、13 篇。
  4. 端点抖动下,SotW/Delta 与 make-before-break 的失败点在 istiod 还是 Envoy? → 第 10–11、15 篇;外链 Envoy 10–11。
  5. 何时该停在 Istio 翻译层,何时该交给 Gateway API / eBPF L4? → 第 6、13、16 篇。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  overview["01 Overview"] --> istiod["02 istiod Process"]
  istiod --> identity["03 Proxy Identity"]
  identity --> push["04 Push Graph"]
  push --> cdseds["05 CDS EDS"]
  cdseds --> rds["06 VS HTTPRoute RDS"]
  rds --> dr["07 DestinationRule"]
  dr --> auth["08 Authn Authz SDS"]
  auth --> scope["09 Sidecar EnvoyFilter"]
  push --> sotw["10 Producer SotW Delta"]
  sotw --> nack["11 NACK Warming"]
  nack --> multi["12 Multicluster"]
  identity --> ambient["13 Ambient"]
  ambient --> linkerd["14 Linkerd Contrast"]
  nack --> trouble["15 Troubleshoot"]
  linkerd --> select["16 Selection"]
  multi --> select
  trouble --> select
  scope --> select
路径 篇目 适合
必读核心 1 → 2 → 4 → 6 → 11 → 15 快速建立坐标系
翻译深挖 5 → 6 → 7 → 8 → 9 CRD 如何落到资源图
推送与失败 4 → 10 → 11 → 15 控制面联调
Ambient / 对照 3 → 13 → 14 → 16 形态与选型
完整通读 1 → … → 16 系统掌握

三、目录与每篇价值点

第一部分:坐标与推送图(01–04)

  1. 控制面全景
    • 相对 Envoy 09–11 / architecture/76 / Gateway 18 的缺口;五条坐标系与 16 篇路线。
  2. istiod 进程模型
    • discovery / config / CA / injection 职责;哪些不在数据面热路径。
  3. 代理身份与订阅
    • sidecar vs ztunnel vs waypoint vs Gateway 订阅什么、为何不同。
  4. 推送图
    • watch → 内部 model → XdsServer → ADS;一次 push 的边界。

第二部分:翻译层(05–09)

  1. Service / Endpoint → CDS/EDS
    • Workload 与端点如何进入集群与负载均衡集合。
  2. VirtualService / HTTPRoute → RDS
    • 路由编译;与 Gateway API 双轨冲突边界(非 CRD 教程)。
  3. DestinationRule
    • subset、outlier、TLS context 如何挂到 cluster。
  4. Authn / Authz / SDS
    • PeerAuthentication / AuthorizationPolicy 落到链与证书分发。
  5. Sidecar / Telemetry / EnvoyFilter
    • 作用域合并顺序与常见脚枪(非 SDK 教程)。

第三部分:规模、Ambient 与收束(10–16)

  1. 生产侧 SotW / Delta
    • debounce、全量推、端点抖动下的控制面行为。
  2. NACK / warming 责任
    • CDS→EDS→LDS→RDS 顺序;与 Envoy 消费侧如何对齐排障。
  3. 多集群 east-west
    • 发现扇出机制;不做厂商 bake-off。
  4. Ambient:ztunnel / waypoint
    • L4 / L7 作为不同 xDS 客户端;故障域边界。
  5. Linkerd 对照
    • 非 xDS gRPC 控制面一篇收住;不写胜负。
  6. 生产排障
    • istioctl / proxy-config 与 Envoy 15 / config_dump 对齐清单。
  7. 选型收束
    • 相对 Gateway API / eBPF L4;回指 Envoy 开放问题 5.1/5.2。

延伸阅读

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。


By .