跳转至

从零读懂 Envoy

写给第一次接触 Envoy 的你

你可能见过“云原生网关”“服务网格”“xDS 控制平面”这些词,却还不知道它们如何与一次普通的 HTTP 请求连在一起。我们就从这条线开始:浏览器发来一个请求,Envoy 为什么监听某个端口,为什么把请求交给某台后端,后端地址改变后谁通知 Envoy,以及如何用 Kubernetes 的声明式资源管理这一切。

两份仓库解决的是相邻层次的问题。go-control-plane 给 Go 开发者提供 xDS 服务端和配置缓存的基础设施;你仍需编写“业务意图如何变成 Envoy 资源”的逻辑。Envoy Gateway 是更完整的网关控制平面,接收 Gateway API 等资源,生成配置并管理数据平面。Envoy Proxy 才是直接接收并转发业务请求的进程。学完本书,你应能说明三者关系、跑通三个实验、跟踪一条配置变更、判断一个故障发生在哪一层。

怎么读

第一次请按 01–07、08–13、16–21 的顺序阅读;14–15、22–23 是深入源码和工程化的第二遍阅读材料。遇到陌生词可以查术语表。每章练习都有参考答案,建议先口述或画图,再展开答案核对。能讲出为什么比复制命令更重要。

准备一个终端、文本编辑器和浏览器即可。实验一需要 Docker Compose;实验二还提供本机 Go 测试路径;实验三需要 Docker、kind、kubectl、Helm。每个实验都在独立目录,有完整文件和清理说明,先阅读 README 再执行。所有监听到宿主机的实验管理端口只用于本机学习。

本节关系图

图中有两条不同的线路:配置流决定 Envoy 怎么工作,业务流经过 Envoy 到后端。后面每一章都能放回这张图里理解。

第一篇:从请求到一台 Envoy

  1. 一次请求经过了什么
  2. 为什么需要代理和网关
  3. 分清三个项目与两条数据流
  4. 把 Envoy 配置看成资源关系图
  5. 逐段读懂第一份静态配置
  6. 运行、观察与修改静态代理
  7. 从配置文件走向控制平面

第二篇:用 Go 理解 xDS 控制平面

  1. xDS 协议、版本与确认
  2. 够用的 Go、Protobuf 与 Any
  3. 用 Go 构造资源关系图
  4. SnapshotCache、分组与一致性
  5. 启动一个 gRPC xDS 服务端
  6. 动态更新与蓝绿切换
  7. go-control-plane 源码导读
  8. 从教学服务到生产控制平面

第三篇:从 Kubernetes 需求到 Envoy Gateway

  1. 够用的 Kubernetes 基础
  2. Gateway API 的角色与授权
  3. 部署第一条 Gateway 路由
  4. 匹配、转发与策略
  5. TLS 与安全边界
  6. 状态、日志、指标与追踪
  7. Envoy Gateway 源码导读
  8. 扩展、升级与运维

第四篇:把知识连起来

  1. 用证据分层排障
  2. 综合项目:一套可解释的蓝绿网关
  3. 四周学习计划与自测答案

附录

本书是可独立阅读的讲解,不是两个仓库的文件逐一翻译。源码引用用于解释关键机制;完整 API 字段和功能支持范围,请继续沿每章的固定版本来源阅读。