本文是“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配置的动态更新,简化了管理流程。
完成下面两步后,将自动完成登录并继续当前操作。