pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.