1. 服务网格概述:定义、核心价值与 Istio/Envoy 架构
1.1 服务网格的定义
服务网格(Service Mesh)是云原生时代用于处理服务间通信的基础设施层。它通过将通信逻辑从业务代码中剥离,以透明代理(Sidecar)的形式注入到每个服务实例旁,接管所有入站(Inbound)和出站(Outbound)流量。
从架构视角看,服务网格由两大平面构成:
| 平面 | 组件 | 职责 |
|---|---|---|
| 数据平面 | Sidecar 代理(如 Envoy) | 拦截流量、执行路由、负载均衡、健康检查、TLS 终止、指标采集 |
| 控制平面 | Istiod(Pilot、Citadel、Galley) | 下发配置、证书签发、策略管理、服务发现、遥测聚合 |
关键认知:服务网格不是“服务发现”或“API 网关”的替代品,而是对它们能力的下沉与补充。网关处理南北向流量,网格处理东西向流量。
1.2 核心价值
服务网格为微服务治理带来的核心价值可归纳为以下五个维度:
- 流量管理精细化:支持按权重、Header、URI 等条件进行灰度发布、蓝绿部署、金丝雀发布。
- 安全通信零信任化:自动为服务间通信启用 mTLS(双向 TLS),实现身份认证与传输加密。
- 可观测性标准化:无侵入地采集调用链、指标(RED 指标)和访问日志。
- 故障恢复自动化:内置超时、重试、熔断、限流等弹性模式。
- 策略执行集中化:通过控制平面统一管理访问控制、配额、速率限制等策略。
1.3 Istio 与 Envoy 架构简介
Istio 是目前最流行的服务网格实现,其数据平面默认使用 Envoy Proxy。Envoy 是一个高性能、C++ 编写的 L4/L7 代理,具备丰富的过滤器链机制。Istio 控制平面(Istiod)将路由规则、安全策略等转换为 Envoy 的 xDS API 配置,动态下发至每个 Sidecar。
1.4 Envoy 代理核心机制
Envoy 作为数据平面的核心,其内部采用四层过滤器链(Listener Filter → Network Filter → HTTP Filter → Cluster)处理流量。每个 Sidecar 启动时从 Istiod 拉取以下关键配置:
- Listener:绑定端口(如 15001),定义流量入口。
- Filter Chains:按协议(TCP/HTTP/gRPC)匹配过滤器,执行路由、RBAC、限流等逻辑。
- Clusters:定义上游服务端点集合及负载均衡策略。
- Routes:将入站请求按规则转发到指定 Cluster。
升级窗口演练关联:在后续章节中,我们将通过修改 Istio 的 VirtualService 和 DestinationRule 来动态调整路由表,并利用 mTLS 准入核验确保只有携带合法证书的服务才能加入网格。Envoy 的 xDS 热更新机制是实现“零停机治理升级”的技术基础。
1.5 本章小结
服务网格通过将通信基础设施下沉至 Sidecar 代理,实现了流量管理、安全通信与可观测性的平台化。Istio + Envoy 的组合是目前生产环境中最成熟的选择。理解数据平面与控制平面的交互机制,是后续进行路由表设计与 mTLS 准入核验演练的前提。