土法炼钢 · 系统与基础设施

Linkerd / 服务网格控制面:非 xDS 的 destination、identity 与 linkerd2-proxy

文章导航

分类入口
kubernetesnetwork
标签入口
#linkerd#service-mesh#control-plane#destination#identity#linkerd2-proxy#mTLS#v2.20

目录

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。

写:

不写: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 说明。

适合谁看

与已有系列的分工

维度 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 个问题

  1. 一次 meshed 连接从注入到路由,失败落在哪一层?native sidecar 与 legacy 在哪分叉? → 第 1–5、10、13 篇。
  2. 为何 Linkerd 不是「另一个 xDS」?按目标 Get() 流与 type-subscription 排障口令差在哪? → 第 6–7、13–14 篇。
  3. mTLS 握手失败:工作负载证书、issuer 还是 trust anchor? → 第 4、12–13 篇。
  4. destination 空端点 / 策略拒绝 / ServiceProfile 未生效如何区分? → 第 5、8–9、13 篇。
  5. 何时选 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)

  1. 控制面全景
    • 相对 istio-xds/14、architecture/76 的缺口;五轴与 16 篇路线。
  2. 网格成员与注入
    • proxy-injector;native sidecar 默认(2.20);membership 失败表象。
  3. 流量重定向
    • linkerd-init vs Linkerd CNI;iptables;opaque/inbound 端口。
  4. identity 服务
    • CSR;工作负载 cert 轮转 vs issuer/trust anchor。
  5. destination 架构
    • 四容器 Pod;Informer;2.20 内存优化门。

第二部分:API、策略与数据面(06–11)

  1. linkerd2-proxy-api
    • destination/identity/inbound/tap;与 xDS 寻址差。
  2. 服务发现流
    • per-target 流;EndpointTranslator。
  3. 策略模型
    • Server、AuthorizationPolicy、MeshTLSAuthentication。
  4. ServiceProfile
    • L7 路由/重试/超时;sp-validator。
  5. linkerd2-proxy 数据面
    • Rust 代理;2.20 限流感知 LB(机制,非 benchmark)。
  6. Gateway API 与多集群
    • GAPI 1.5.1 门;multicluster 以 tag 为准。

第三部分:运维、对照与收束(12–16)

  1. 运维与升级
    • 证书轮转;2.20 destination 内存门。
  2. 排障坐标系
    • 五轴;native vs legacy 证据包。
  3. 对照替代路径
    • istio-xds、Ambient、Cilium L4。
  4. 生态与制品边界
    • stable vs edge;vendor 制品。
  5. 选型收束与开放问题
    • 排除树;回收 istio-xds/16 Linkerd 指针。

四、延伸阅读

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-08-23 · kubernetes / network

【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。


By .