Envoy原理介绍及线上问题踩坑
2.67 MB
30 页
0 评论
| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
本文档详细介绍了Envoy作为服务网格数据面代理的原理及其在生产环境中的应用。Envoy采用高性能C++实现,支持四层及七层代理,具备服务发现、路由、负载均衡、动态配置等功能。文档重点阐述了Envoy的启动配置、流量拦截机制、过滤器架构及线程模型,并分享了在实际应用中针对性能优化的经验,包括解决默认连接处理策略导致的性能瓶颈问题,优化后显著降低了网络时延,提升了处理能力。 | ||
| AI总结 | ||
# Envoy 原理介绍及线上问题踩坑总结
## 核心原理
1. **Envoy 简介**
- 基于 C++11/14 实现的高性能服务网格数据面代理。
- 支持四层(L4)和七层(L7)流量处理,包括 Http1/Http2、Tls、gRPC、Tcp 等协议。
- 提供服务发现、路由、负载均衡、动态配置、安全、健康检查及可观测性等高级服务治理能力。
2. **Envoy 架构**
- **线程模型**:每个工作线程独立处理网络和定时器事件,线程间无数据共享,提升性能。
- **过滤器架构**:支持可扩展插件,包括 L4 网络过滤器、L7 HTTP 过滤器,以及基于 L4/L7 WASM 和 Lua 的二次扩展。
3. **流量拦截与部署**
- 通过 iptables 拦截 Pod 间的出入流量,实现对应用透明的代理。
- 自动注入 Istio-init 和 Istio-proxy 容器,完成流量拦截和代理配置。
4. **配置与通信**
- 使用 xDS(gRPC 协议)与上层控制面(如 Istiod)通信,动态获取和更新配置。
- 支持 SDS(静态文件)和 CSR(证书签名请求)机制,实现证书动态更新。
---
## 生产环境问题与优化
1. **问题分析**
- **连接分配不均**:默认连接处理策略下,新连接随机分配到线程,导致某些线程负载过高,影响性能。
- **资源消耗**:Envoy 实例的配置信息拉取和共享机制可能导致资源浪费。
- **性能瓶颈**:长连接和高规格 Envoy 的配置策略可能导致 QPS 下降和 tp90 时延增加。
2. **优化方案**
- **优化连接分配策略**:调整虚拟 outbound 监听器的连接处理逻辑,确保线程负载均衡。
- **减少资源消耗**:通过运行时配置拉取和配置信息共享,降低每 Envoy 实例的资源消耗。
- **增强监控与可观测性**:增加运维监控维度和探测点,支持对问题 Envoy 实例进行旁路处理。
3. **优化效果**
- 端到端性能提升,tp90 网络时延显著降低。
- 资源利用率优化,减少 Envoy 实例的性能开销。
- 提高系统稳定性,减少因连接分配不均导致的性能波动。
---
## 参考资料
- 华为云 ASM 官网:[https://support.huaweicloud.com/istio/](https://support.huaweicloud.com/istio/)
- Istio 官方文档:[https://istio.io/latest/docs/](https://istio.io/latest/docs/)
- Envoy 官方文档:[https://www.envoyproxy.io/docs/envoy/latest/](https://www.envoyproxy.io/docs/envoy/latest/) | ||
| 来源 | istio.io | ||||
|---|---|---|---|---|---|
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
18 页请下载阅读 -
文档评分













