Istio 控制面内核
已把 istiod、xDS 推送、NACK/warming 与 Ambient
多客户端钉到可排障精度;第
14 篇对照 用一篇收住「Linkerd 不是另一个 xDS」。 Service
Mesh 架构 给过 Sidecar 税与 Ambient
地图。中间仍缺一层:Pod 如何 mesh、mTLS 握手失败落在
identity 哪一层、destination 按目标 Get()
流如何推送端点与策略、native sidecar 默认(2.20)与 legacy
路径如何分列,以及相对 istiod/xDS 与 Cilium L4 何时不该上
Linkerd。
本系列回答:Linkerd 路径里连接失败与「无路由」落在哪一层,专用 gRPC 控制面相对 xDS 通用协议换来了什么排障坐标,以及何时应回到 istiod 或纯 CNI。
写:
- 三组件拆分:destination ∥ identity ∥ proxy-injector(故障域分列,非「轻量 istiod」)。
- 注入与重定向(native sidecar 默认 2.20 门)、identity CSR/轮转、destination 发现与策略、ServiceProfile。
- linkerd2-proxy-api、linkerd2-proxy 数据面、排障五轴、相对 istio-xds/Ambient/Cilium 的选型。
不写:VirtualService 菜谱、Envoy Filter 重讲、istiod 推送图重讲、Cilium eBPF 全书、未实测 CPU% 排行。不把 Linkerd 写成 xDS 实现。 xDS 控制面见 istio-xds/;Envoy 数据面见 envoy/;纯 L4 见 cilium/。
系列状态:01–16 已发布(2026-08-23)。 规划见 PLAN.md。机制结论钉源码 tag
version-2.20(Linkerd 2.20,2026-06-23),不以linkerd.io/docs/live 站点冒充该版本。无真实 Linkerd 集群则不粘贴伪造linkerd check/ viz 指标。实验台账未跑。
版本锚定:Linkerd 2.20(源码 tag
version-2.20;edge edge-26.6.3)。native sidecar 为 2.20 默认注入方式。Gateway API 对照至 1.5.1;Kubernetes 支持至 1.35(随 2.20 公告)。自 2024-02 起 OSS 项目本身不再发布 stable 制品——机制钉 tag,安装包来源见 官方 releases 与 vendor 说明。
适合谁看
- 平台 / SRE,要把「装了 Linkerd」推进到「能归因 injector→identity→destination→proxy」。
- 读过 istio-xds 第 14 篇,需要 Linkerd 叶机制全书坐标的读者。
- 在 Linkerd、Istio、Ambient、纯 CNI 之间做路径选型的架构师。
与已有系列的分工
| 维度 | istio-xds/ / architecture/76 | 本系列 |
|---|---|---|
| 定位 | xDS/istiod 推送、税与地图 | 专用 gRPC 控制面 + linkerd2-proxy 数据面 |
| 深度 | CRD→xDS、NACK/warming | injector→identity→destination→proxy、排障轴 |
| 对照 | Linkerd 一篇机制对照 | 显式排除树;不重写 istiod |
| 症状 / 问题 | 去看 |
|---|---|
| xDS NACK / warming / istiod 推送 | istio-xds/15 |
| Envoy Listener / Cluster / HCM | envoy/ |
| identity / Hubble / CNP 四元组 | cilium/ |
| 南北向 Gateway API / XdsIR | envoy-gateway/ |
| 进程 / syscall / Override | tetragon/ |
| destination 无端点 / mTLS 失败 / 未 mesh | 本系列 13 |
读法:只要「Linkerd 大概能 mTLS」→ architecture/76 或 istio-xds/14 足够;要「未 mesh、握手失败、无端点、策略拒、native sidecar 与 legacy 分列」→ 本系列 01 → 02 → 04 → 07 → 13。
一、这个领域最值得关注的 5 个问题
- 一次 meshed 连接从注入到路由,失败落在哪一层?native sidecar 与 legacy 在哪分叉? → 第 1–5、10、13 篇。
- 为何 Linkerd 不是「另一个 xDS」?按目标
Get()流与 type-subscription 排障口令差在哪? → 第 6–7、13–14 篇。 - mTLS 握手失败:工作负载证书、issuer 还是 trust anchor? → 第 4、12–13 篇。
- destination 空端点 / 策略拒绝 / ServiceProfile 未生效如何区分? → 第 5、8–9、13 篇。
- 何时选 Linkerd,而非 istiod/xDS、Ambient 或 Cilium L4? → 第 14–16 篇。
二、篇目依赖关系与推荐阅读路径
flowchart TD
overview["01 Overview"] --> inject["02 Mesh Inject"]
inject --> redirect["03 Traffic Redirect"]
redirect --> ident["04 Identity"]
ident --> dest["05 Destination Arch"]
dest --> api["06 proxy-api"]
api --> disc["07 Discovery Stream"]
disc --> pol["08 Policy"]
pol --> sp["09 ServiceProfile"]
sp --> proxy["10 linkerd2-proxy"]
proxy --> gapi["11 GAPI Multicluster"]
gapi --> ops["12 Upgrade"]
ops --> trouble["13 Troubleshoot"]
trouble --> vs["14 vs Alternatives"]
vs --> eco["15 Ecosystem"]
eco --> select["16 Selection"]
overview --> select
| 路径 | 篇目 | 适合 |
|---|---|---|
| 必读核心 | 1 → 2 → 4 → 7 → 13 | 快速建立坐标系 |
| 注入与 mTLS | 2 → 3 → 4 → 12 | 成员资格与证书门 |
| 对照选型 | 1 → 14 → 16 | 路径选型 |
| 完整通读 | 1 → … → 16 | 系统掌握 |
三、目录与每篇价值点
第一部分:模型与成员资格(01–05)
- 控制面全景
- 相对 istio-xds/14、architecture/76 的缺口;五轴与 16 篇路线。
- 网格成员与注入
- proxy-injector;native sidecar 默认(2.20);membership 失败表象。
- 流量重定向
- linkerd-init vs Linkerd CNI;iptables;opaque/inbound 端口。
- identity
服务
- CSR;工作负载 cert 轮转 vs issuer/trust anchor。
- destination
架构
- 四容器 Pod;Informer;2.20 内存优化门。
第二部分:API、策略与数据面(06–11)
- linkerd2-proxy-api
- destination/identity/inbound/tap;与 xDS 寻址差。
- 服务发现流
- per-target 流;EndpointTranslator。
- 策略模型
- Server、AuthorizationPolicy、MeshTLSAuthentication。
- ServiceProfile
- L7 路由/重试/超时;sp-validator。
- linkerd2-proxy
数据面
- Rust 代理;2.20 限流感知 LB(机制,非 benchmark)。
- Gateway
API 与多集群
- GAPI 1.5.1 门;multicluster 以 tag 为准。
第三部分:运维、对照与收束(12–16)
- 运维与升级
- 证书轮转;2.20 destination 内存门。
- 排障坐标系
- 五轴;native vs legacy 证据包。
- 对照替代路径
- istio-xds、Ambient、Cilium L4。
- 生态与制品边界
- stable vs edge;vendor 制品。
- 选型收束与开放问题
- 排除树;回收 istio-xds/16 Linkerd 指针。
四、延伸阅读
- Istio 控制面内核
- Istio 14 · Linkerd 对照(Istio 侧)
- Istio 16 · 选型收束
- Envoy 数据面
- Cilium eBPF 数据面
- Service Mesh 架构
- Envoy Gateway / Gateway API
- 全部系列索引
读完这篇,下一步读什么
优先读同系列或同问题的下一篇,把单篇消费变成主题集群。
【Linkerd】控制面全景:缺口、五轴坐标系与 16 篇路线
相对 istio-xds/14 对照篇与 architecture/76 税文,钉清 Linkerd 2.20 非 xDS 控制面缺口;定义注入、identity、destination、策略与数据面五条轴,并强调 native sidecar 与 legacy 路径分列证据包。
【Linkerd】linkerd2-proxy-api:专用 gRPC 与 xDS 寻址差
钉清 Linkerd 2.20 控制面与 linkerd2-proxy 之间的四套专用 gRPC 服务(destination/identity/inbound/tap),说明 per-target Get 流式寻址与 xDS type-subscription 的机制差,以及错误落在 gRPC 层而非 ACK/NACK。
【Linkerd】identity 服务:CSR、mTLS 与工作负载证书轮转
拆解 linkerd-identity 如何校验 CSR 并签发绑定 ServiceAccount 的工作负载证书;自动轮转与 issuer/trust anchor 分层,并对照 Envoy SDS 路径与失败落格。
【Linkerd】运维与升级:证书轮转与 2.20 destination 内存门
按 2.20 tag 钉控制面升级顺序、trust anchor/issuer 分层轮转、destination 内存重构运维门;附 live vs tag 门禁与否证检查表。无集群则不写升级成功叙事。