前 13 篇把一次 meshed 连接拆到五轴可归因:注入与成员、identity、mTLS、destination 流、策略与数据面。接下来的问题不是「Linkerd 功能全不全」,而是:什么时候专用 gRPC 控制面与 linkerd2-proxy 路径的税不值得付——需求停在 L3/L4、需要通用 xDS 多客户端、或 Ambient 已承接 sidecar-free 基线。
本文不做 CPU 或内存排行榜。跨方案资源比较需要固定工作负载、策略规模、是否开 mTLS、EndpointSlice churn 与 native sidecar 默认路径;单个百分比是口径欺骗。这里只钉机制分歧:控制面协议如何寻址、数据面由谁消费、排障落在哪套口令。istiod 推送图、NACK/warming、Ambient ztunnel 细节不重写——机制结论外链 istio-xds/ 全书;Cilium identity/map 全书外链 cilium/。
本篇在系列中的位置
篇目 核心内容 第 13 篇 · 排障坐标系 五轴归因 第 14 篇 · 对照替代路径 istio-xds / Ambient / Cilium L4 第 15 篇 · 生态与制品边界 stable / edge / Buoyant 系列目录 全部篇目
版本锚定:Linkerd 2.20(源码 tag
version-2.20,2026-06-23;edge edge-26.6.3)。对照结论是机制判断。Istio 站内钉 1.30.3;Cilium 站内钉 v1.20.0。不把linkerd.io/docs/live 站点冒充 2.20 能力。
一、istio-xds / xDS(外链,不重写)
Istio 控制面内核 已把 istiod、xDS 推送、NACK/warming、多集群扇出与排障五轴钉到可核对精度。第 14 篇对照(Istio 侧) 用一篇收住「Linkerd 不是另一个 xDS」。本篇只补 Linkerd 侧坐标,不重写 istiod 翻译层。
| 机制问题 | istiod / xDS(外链) | Linkerd 2.20(本系列) |
|---|---|---|
| 控制面拓扑 | 单进程 istiod 多能力 | destination ∥ identity ∥ proxy-injector 三 Deployment |
| 代理协议 | 通用 xDS(LDS/RDS/CDS/EDS/…) | linkerd2-proxy-api 专用 gRPC(destination /
identity / inbound / tap) |
| 发现寻址 | type-subscription:按资源类型 + 名集合订阅 | per-target:destination.Get(service-name)
流式推送 |
| 错误方言 | ACK/NACK、warming、proxy-status |
gRPC 状态码、流断开重连;无通用资源级 NACK |
| 数据面 | Envoy(及 Ambient 多客户端) | linkerd2-proxy(Rust,一对一 API) |
| 证书路径 | SDS 等 xDS 资源 | identity CSR 专用 API;issuer / trust anchor 分层轮转 |
| 排障入口 | 第 15 篇五轴 + Envoy 系列 | 本系列五轴(注入 / identity / destination / 策略 / 数据面) |
Linkerd 赢在的前提:团队接受「不跑
xDS」——不需要 waypoint/ztunnel/第三方 xDS
消费者共用同一推送语义;愿意用 destination 按目标流 +
identity CSR 排障,而不是 istioctl proxy-config
资源树;mesh 范围以 linkerd2-proxy 为边界即可。
istiod/xDS 赢在的前提:已有 VirtualService/DestinationRule 存量或必须 GAMMA/多实现 HTTPRoute 翻译到同一 RDS/CDS;需要 Envoy Filter 生态、Ambient 双客户端或 waypoint 选择性 L7;排障编制已投资 xDS NACK/warming 口令(istio-xds/11、istio-xds/15)。
把 Linkerd 当成「轻量
istiod」会在第一步指错组件:无端点先查 destination
Get() 流与 EndpointSlice,而不是 CDS/EDS
warming;握手失败先查 identity CSR 与 trust anchor,而不是
SDS「未就绪 vs 取证失败」状态机(对照 envoy/11)。
二、Ambient
Istio Ambient(ztunnel + waypoint + 可选 agentgateway)是 仍在 xDS 语义内 砍掉 per-Pod sidecar 的路径:istio-xds/13 钉住 ztunnel/waypoint 作为 xDS 客户端、L4 基线与选择性 L7 分工。与 Linkerd 的对比不是「谁更轻」口号,而是 税落在哪一层。
| 机制问题 | Ambient(外链) | Linkerd 2.20 |
|---|---|---|
| sidecar 税 | 节点级 ztunnel + 按需 waypoint | per-Pod linkerd2-proxy(2.20 native sidecar 默认;legacy init+sidecar 仍支持) |
| 控制面协议 | xDS(Address、WorkloadAuthorization 等) | 专用 destination / identity API |
| L4 基线 | ztunnel 隧道 | init/CNI 重定向 + proxy inbound/outbound |
| L7 选择性 | waypoint Envoy | ServiceProfile + policy CRD;GAPI 1.5.1 门(第 11 篇) |
| 排障 | istiod 五轴 + Ambient 客户端类型 | 本系列五轴;无 type-subscription |
Ambient 赢在的前提:已选 Istio 生态、sidecar 内存/注入税不可接受,但仍要 xDS 统一翻译与 waypoint 上的 Envoy L7;编制能区分 ztunnel vs waypoint 失败(architecture/76 税地图)。
Linkerd 赢在的前提:不想承担 istiod + 多 xDS 客户端复杂度;接受 per-workload proxy 但希望专用 API 与三组件故障域分列;不需要 waypoint 与 ztunnel 双轨排障。
两者都不是 eBPF L4 CNI:Ambient 的 ztunnel 仍订阅 xDS;Linkerd 仍走用户态 proxy 跳。若需求止步于内核 identity + L3/L4,应先问 Cilium 叶,而不是在 Ambient 与 Linkerd 之间二选一。
三、Cilium L4
Cilium / eBPF 数据面 把转发与策略放在 BPF map + numeric identity 上,不生成 xDS 资源,也不经过 linkerd2-proxy。Hubble verdict 与 destination 空流、identity CSR 失败是不同方言(cilium/13 vs 本系列第 13 篇)。
| 机制问题 | Cilium eBPF L4(外链) | Linkerd mesh |
|---|---|---|
| 是否 mesh | CNI + 可选 L7 Envoy;非默认每跳 mTLS 代理 | 默认 meshed mTLS + 发现 |
| 策略键 | numeric identity | Server / AuthorizationPolicy + ServiceAccount 绑定证书 |
| Service | KPR 时 BPF LB | kube-proxy + destination 端点富化 |
| L7 | 可选;非主业 | ServiceProfile、policy;非 Envoy Filter 链 |
| 观测 | Hubble | proxy metrics / tap;无 Hubble 同构 |
| 排障 | identity / map / Hubble 五轴 | injector→identity→destination→proxy 五轴 |
Cilium L4 赢在的前提:东西向只需 identity-centric NetworkPolicy +(可选)Hubble;不需要每连接 mTLS 与 mesh 发现流;愿意把 L7 交给独立网关或少数 sidecar(cilium/16 排除树)。
Linkerd 赢在的前提:要把 默认 meshed mTLS + 按目标发现流 当作一等能力;策略与路由要进 destination 响应;值班语言是「未 mesh / 握手失败 / 无端点」而不是「CNP deny / map 压力」。
同一集群可并存 Cilium CNI 与 Linkerd mesh,但排障必须先点名轴:连接被拒先分清 Hubble deny 与 AuthorizationPolicy;TLS 失败先分清 identity 证书与 Cilium 透明加密路径。联合 runbook 仍开放(第 16 篇),本篇不编造「告警字段已自动 join」。
四、机制差表(协议 × 数据面 × 排障坐标)
flowchart LR
subgraph xds ["istiod / xDS path"]
istiod["istiod"] -->|"type subscription"| envoy["Envoy / ztunnel / waypoint"]
end
subgraph ld ["Linkerd path"]
dest["destination"] -->|"per-target Get stream"| lproxy["linkerd2-proxy"]
ident["identity"] -->|"CSR sign"| lproxy
inj["proxy-injector"] --> lproxy
end
subgraph cil ["Cilium L4 path"]
bpf["BPF maps"] --> fwd["kernel forward"]
id["identity allocator"] --> bpf
end
| 路径 | 控制面协议 | 数据面引擎 | 排障主坐标 | 典型前提 |
|---|---|---|---|---|
| istiod / xDS | 通用 xDS gRPC | Envoy(+ Ambient 客户端) | NACK/warming、proxy-status、CDS/EDS |
存量 Istio CRD 或 GAMMA;多 xDS 消费者 |
| Ambient | xDS(Address 等) | ztunnel + waypoint Envoy | 客户端类型 + istiod 五轴 | Istio 生态内砍 sidecar;仍付 xDS 税 |
| Linkerd 2.20 | linkerd2-proxy-api |
linkerd2-proxy | 注入 / CSR / Get() 流 / policy / proxy |
专用 API 可接受;三组件分列运维 |
| Cilium L4 | 无 xDS | eBPF TC/XDP + map | identity / map / Hubble | 仅 L3/L4;mesh mTLS 非刚需 |
表后必须说清假设。Linkerd 不等于「没有控制面」——destination 内存与 EndpointSlice churn 仍是运维门(第 5、12 篇)。Ambient 不等于「没有 proxy」——waypoint 仍是 Envoy。Cilium 不等于「不能 L7」——L7 往往另开代理或 Gateway,机制不在本表同一列。
选型树见 第 16 篇。对照阅读路径:已读 istio-xds/14 的读者,用本篇补 Linkerd 侧排障坐标;已读本系列 01–13 的读者,用本篇决定何时应回到 istiod 或纯 CNI。
五、不写 CPU 榜
下列内容明确不在本篇:
- 「Linkerd 比 Istio 省多少 CPU/内存」的未标定截图或
anecdote。
- 把 architecture/76
里的 Sidecar 税数字抄成 Linkerd 结论。
- 跨方案
RPS/延迟曲线,除非将来按本系列实验台账真实跑过并写清口径。
- 重写 istiod debounce、Ambient scoping TODO、Cilium KPR 矩阵——分别归各自系列。
要做的事:用第四节表回答「协议 × 数据面 × 排障坐标」;用第五节边界把争论从海报拉回机制判据。产品级勾选综述见 observability/15,互补不替代。
参考资料
规范 / 官方文档 / 源码(A)
- Linkerd
2.20:Architecture;
linkerd/linkerd2tagversion-2.20;linkerd2-proxy-apiREADME - Istio 1.30.3:istio-xds/14、istio-xds/13 Ambient
- Cilium v1.20.0:cilium/14、cilium/16
站内对照
实验台账
- 本篇无跨方案 benchmark;对照依据为机制排除,非跑分。
上一篇:排障坐标系
下一篇:生态与制品边界
读完这篇,下一步读什么
优先读同系列或同问题的下一篇,把单篇消费变成主题集群。
【Linkerd】选型收束与开放问题:排除树与系列边界关闭
用机制排除树收束何时不该跑 Linkerd;回收 istio-xds/16 的 Linkerd 叶;列出 native sidecar 与 Job、GAPI 双轨、与 Falco/Tetragon 联合 runbook 等开放问题;以 ADR 友好语言关闭续作边界。
【Istio 控制面】选型收束与开放问题:CRD、Gateway API 与 eBPF L4 的排除树
用机制排除树收束 Istio CRD 翻译、Gateway API/GAMMA 与 eBPF L4 的选型边界,回收系列阅读路径,并列出推送 SLO、Ambient 成熟度、GAMMA 双轨等开放问题;不做延迟排行榜。
【Istio 控制面】控制面全景:从 CRD 到 xDS 的翻译与推送内核
定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口;给出五条坐标系、16 篇地图与本系列明确不写的范围,钉住 istiod 1.30.3 为主线。
Istio / 网格控制面内核:从 CRD 到 xDS
补齐 Envoy 数据面 xDS 消费侧与 Mesh 选型叙事之间的控制面内核:istiod 推送图、CRD/HTTPRoute 翻译、Ambient 多客户端、NACK/warming 责任与排障对齐。