> 本文是写作规划,不是可发布正文。拆解对象:Linkerd 在 Kubernetes 上的服务网格控制面与数据面内核——以 Linkerd 2.20(2026-06-23 公告;源码 tag version-2.20;对应 edge edge-26.6.3)为主线,把一次出站/入站连接从 proxy-injector…
本文介绍Linkerd 2.20控制面与linkerd2-proxy间的四套gRPC API:destination、identity、inbound和tap。与istiod/xDS通用协议不同,Linkerd采用专用API,按目标服务名流式查询,错误处理基于gRPC状态码而非ACK/NACK。排障时需查destination.Get流,而非EDS快照。文章强调版本锚定v0.20.0,并对比了与Istio在组件拓扑、L7信息和身份路径上的差异。
本文对比Linkerd 2.20与Istio xDS、Ambient及Cilium L4的机制差异,聚焦控制面协议、数据面引擎与排障坐标。Linkerd采用专用gRPC API与per-Pod代理,适合接受专用API的团队;Istio xDS适合存量CRD或多客户端场景;Ambient在xDS内去sidecar;Cilium适合仅需L3/L4。不比较性能,仅提供机制选型依据。
本文介绍Linkerd 2.20控制面系列文章,涵盖其非xDS架构、五轴排障坐标系(注入、identity、destination、策略、数据面)及16篇路线图。重点区分native sidecar与legacy路径,对比istiod/xDS和Cilium L4,说明专用gRPC控制面优势,并指导选型与排障,强调基于源码tag而非live文档。
本文介绍Envoy Gateway v1.9.0中xDS Translator将XdsIR编译为LDS/RDS/CDS/EDS/SDS资源,Infra Manager将InfraIR转化为Envoy部署舰队。强调“已推送”不等于“在服务”,需区分IR、快照、ACK和warming四层。系统错误不发半棵树,NACK时Envoy守旧配置,排障需先确认基础设施再查xDS指标。
本文介绍Envoy Gateway排障方法,提出五轴坐标系:附着/status、IR、xDS、Envoy数据面、东西向。强调先定位故障轴再处理,避免盲目修改YAML。核心是区分status条件(Accepted/Programmed/ResolvedRefs)与实际数据面状态,注意NACK、IR空、observedGeneration不匹配等陷阱,并指出Programmed不等于流量已切换。
本文介绍Envoy Gateway v1.9.0南北向控制面系列文章,聚焦从Gateway API附着、status、Provider watch到XdsIR/InfraIR、xDS Translator及Infra Manager的编译管线。涵盖HTTPRoute、TLS/SDS、L4路由、Policy attachment等主题,提供排障五轴坐标系,并对比Cilium Gateway、Istio等替代方案,指导选型与故障归因。
本文是“Istio/网格控制面内核”系列首篇,旨在填补Envoy消费侧与Mesh选型之间的缺口,聚焦istiod如何将CRD或Gateway API资源编译为xDS资源图并推送。文章梳理了xDS从协议到控制面产品的三次分叉,提出五条坐标系(资源来源、订阅身份、推送图、一致性、作用域),并明确系列16篇的边界与不涉及内容。
本文探讨Istio Ambient模式下控制面istiod如何区分并服务ztunnel与waypoint两类代理。ztunnel按节点部署,仅处理L4,订阅地址与授权资源;waypoint是标准Envoy,按挂载关系订阅资源。当前ambient代理跳过sidecar的作用域过滤优化,源码留有TODO,是大规模部署的已知差距。
Linkerd控制面与Istio不同,不实现xDS,而是拆分为destination、identity、proxy-injector三个独立组件。其API为linkerd2-proxy定制,按目标服务名查询,身份签发走专用CSR接口。Istio合并进istiod单进程,用通用xDS协议。两者是不同工程取舍,无优劣之分。
本文介绍Istio控制面系列,聚焦istiod如何将CRD/HTTPRoute编译为xDS图并推送。涵盖istiod进程模型、代理身份订阅、翻译层(Service、VirtualService等)、生产侧SotW/Delta、NACK/warming责任、多集群及Ambient对比。提供16篇目录和阅读路径,面向平台工程师,帮助从“能apply”推进到“能归因推送”,并明确不涉及Envoy内核或选型税文。
本文是Envoy数据面代理内核系列的首篇,介绍Envoy作为API驱动、Filter可编程的数据面代理的定位。文章规划了16篇阅读路线,并确立了五条分析坐标系:请求路径、线程快照、匹配改写、xDS一致性及上游资源。同时讨论了与站内其他文章的分工及开放争论,为后续深入解析Envoy机制奠定基础。
本文介绍Envoy xDS配置的资源树结构,核心为LDS→RDS→CDS→EDS(及SDS),通过名称引用形成依赖链。推送顺序至关重要,需遵循make-before-break原则:先CDS/EDS,再LDS,最后RDS,避免黑洞。Warming决定资源何时可用,ACK不等于依赖就绪。控制面需按序推送,确保数据面稳定切换。
本文是Envoy数据面系列文章,从Listener到xDS详解可编程代理内核。内容围绕请求路径、配置快照、FilterChainMatch、xDS warming及上游资源五条主线,分16篇深入探讨线程模型、HTTP filter链、Cluster负载均衡、动态配置生效机制及生产排障。适合平台、网关及Mesh数据面工程师,旨在将“能跑”提升至“能归因”,并与Nginx/HAProxy等选型对比。
LinkedIn升级了基于ZooKeeper的服务发现平台,采用Apache Kafka和xDS协议,实现可扩展架构。新系统支持最终一致性,允许非Java客户端参与。通过“双模式”策略,团队实现了零停机迁移,解决了ZooKeeper的性能瓶颈,显著提升了数据传播速度和系统可扩展性。
Istio项目早期通过全球状态方法将配置推送到Envoy代理,导致网络负载和性能损失。为了解决这一问题,Istio社区开发了增量xDS,并在Istio 1.22版本中支持该功能。
本文介绍了如何在Kubernetes中使用ConfigMap动态管理Envoy的XDS服务。通过启动一个SideCar监听文件变化,触发Envoy重新加载配置。为解决inotify监听失败和ConfigMap挂载只读的问题,采用initContainer将文件复制到可写目录,最终实现了Envoy配置的动态更新,简化了管理流程。
完成下面两步后,将自动完成登录并继续当前操作。