Envoy原理介绍及线上问题踩坑
Envoy原理介绍及线上问题踩坑 介绍人:张伟 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 2 个人介绍 张伟 华为云容器网格数据面技术专家 拥有10年以上中间件及高性能系统开发经验, 作为架构师及核心开发人员发布过传输网管系 统、Tuxedo交易中间件、ts-server多媒体转码服 Technologies Co., Ltd. All rights reserved. Page 3 目录 1. Envoy启动及配置文件 2. Envoy流量拦截原理、常用部署方式 3. Envoy可扩展过滤器架构、可观测性 4. Envoy线程模型 5. 生产环境问题分析及解决方法 6. 针对Envoy做的一些优化及效果 7. 常用性能分析测试工具及使用方法 8. 华为ASM产品介绍 Copyright rights reserved. Page 5 Envoy介绍 • Envoy采用C++实现,本身为四层及七层代理,可以根据用户应用请求内的数据进行高级服务治理 能力,包括服务发现、路由、高级负载均衡、动态配置、链路安全及证书更新、目标健康检查、 完整的可观测性等。 • 目前常见数据面主要有三种:Envoy、Linkerd、Traefic。Envoy由于高性能和扩展能力前在数据面遥 遥领先。0 码力 | 30 页 | 2.67 MB | 1 年前3Service Mesh结合容器云平台的思考和实践
细粒度的鉴权(服务间的调用) • RPC支持 • 跨语言的问题 • …云平台微服务演进之Service Mesh云平台微服务演进之Service Mesh Pilot Envoy • 服务发现 • Envoy生命周期管理 • Envoy配置下发 • 服务模型 • 配置模型 • 负载均衡 • 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … 前提条件检查:安全认证,黑白名单, ACL检查 • 限流管理 • 遥测报告:日志监控 控制平面 数据平面 Istio-Auth • 服务间认证 • 终端用户认证Istio的核心组件 • Envoy 是一个高性能轻量级代理,它掌控了service的入口流量和出口流量,它提供了很多内置功能,如动态负 载服务发现、负载均衡、TLS终止、HTTP/2 & gRPC流量代理、熔断、健康检查等功能。 展组 件,内部提供了多个模块化的适配器(adapter)。 • Pilot 翻译过来是领航员,Pliot对Envoy的生命周期进行管理,同时提供了智能路由(如A/B测试、金丝雀部 署)、流量管理(超时、重试、熔断)功能。Pliot接收用户指定的高级路由规则配置,转换成Envoy的 配置,使这些规则生效。 • Istio-Auth 服务间认证和终端用户认证功能Istio的Pilot功能解析Pilot官方架构Istio0 码力 | 28 页 | 3.09 MB | 5 月前301. MOSN 高性能网络扩展实践 - 王发康
王发康 蚂蚁集团 可信原生技术部,技术专家 蚂蚁集团技术专家,专注于高性能网络服务器研发,MOSN、Tengine 开源项目核 心成员,目前关注云原生 ServiceMesh、Nginx、Envoy、Istio 等相关领域。 喜欢开源,乐于分享。 https://github.com/wangfakang 目 录 MoE 背景介绍 01 MoE 方案介绍 02 MoE 实践效果 03 MoE 背景介绍 — 什么是 MoE 处理性能高 (C++) 研发效能高 (GoLang、生态) 高性能、高研发效能、生态打通 MoE = MOSN + Envoy 相互融合,各取所长 在 Service Mesh 领域,Envoy 和 MOSN 作为其数据面 sidecar 之一 ,用于解决传统服务治理体系下的痛点如: 多语言,中间件组件开发适配成本高、SDK 升级困难、 技术复用度差、治理体系不统一等。 维护成本高 • Envoy C++ 编写,对于 业务方来说开发门槛高 技术趋势 • Lua extension • WASM extension • External-proc extension 可扩展性、灵活性、生态 价值意义 • 技术共享,融合 Envoy 和 MOSN 优势 • 增强 Envoy 和 GoLang 社区生态粘性 MoE Envoy 和 GoLong0 码力 | 29 页 | 2.80 MB | 1 年前3Istio Security Assessment
allowing inbound and outbound access of Istio services. • Istio Envoy Usage: The configuration and implemen- tation of Envoy within Istio (NOTE: Envoy itself was not part of the assessment). • Istio Control interface exposes unnecessary ser- vices and is accessible to anyone within a default cluster. • The Envoy Proxy admin port is exposed via the Istio sidecar and would allow a malicious workload to override branch up to July 15th, 2020. Commit: 7353c84b560fd469123611476314e4aee553611d istio/proxy Istio Envoy Proxy code in the master branch up to July 15th, 2020. Commit: c51fe751a17441b5ab3f5487c37e129e44eec8230 码力 | 51 页 | 849.66 KB | 1 年前31.3 MOSN 在云原生的探索及实践
王发康 蚂蚁集团 可信原生技术部,技术专家 蚂蚁集团技术专家,专注于高性能网络服务器研发,MOSN、 Tengine 开源项目核心成员,目前专注于云原生 ServiceMesh、 Nginx、Envoy、Istio 等相关领域。 喜欢开源,乐于分享。 https://github.com/wangfakang MOSN 开源交流群2 目 录 MOSN 云原生演进历程 01 MOSN Service Mesh 核心支付链路覆 盖 MOSN 宣布独立运营 CNCF landscape V0.13.0 发布, 进行云原生组 件生态融合 Istio 官方推荐 数据面 MOSN 和 Envoy、 Dapr、WASM 开始展开生态合作 商业化落地 江西农信 Mesh 阿里云 CDN 2019年双11 2019年12月 2020年6月 2020年7月 2020年12月 2021年 背景介绍 — 什么是 MOE 处理性能高 (C++) 研发效能高 (GoLang、生态) 高性能、高研发效能、生态打通 MOE = MOSN + Envoy 相互融合,各取所长 在 Service Mesh 领域,Envoy 和 MOSN 作为 其数据面 Sidecar 之一 ,用于解决传统服务治 理体系下的痛点如:多语言中间件组件开发适配 成本高、SDK 升级困难、技术复用度差、治理体0 码力 | 36 页 | 35.61 MB | 1 年前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy SDS) • 复杂性 • Mixer使用一组称为模板的核心抽象,来描述传递给适配器的数据。 这些包括“metrics”,“logentry”,“tracepan”等。这些抽 象与后 embedded in Envoy. There will no longer be any stand-alone Mixer service. This will improve performance and reduce operational complexity. Mixer-In-Proxy/Mixer合并进Proxy。 Mixer 将用C ++重写并直接嵌入到Envoy。 将不再有任何独立的 灵活的适配器模型,使其以下操作变得简 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)合并没问题,如何合并才是问题 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?Envoy在设计上是可扩展的 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? 扩展点: ● L4/L7 filters ● Access loggers ● Tracers ●0 码力 | 43 页 | 2.90 MB | 5 月前3OpenShift Container Platform 4.8 Service Mesh
18. 连接服务网格 1.19. 扩展 1.20. 使用 3SCALE WEBASSEMBLY 模块 1.21. 使用 3SCALE ISTIO 适配器 1.22. 服务网格故障排除 1.23. ENVOY 代理故障排除 1.24. SERVICE MESH CONTROL PLANE 配置参考 1.25. KIALI 配置参考 1.26. JAEGER 配置参考 1.27. 卸载 SERVICE MESH 和更高版本的支持。 1.2.2.1.1. Red Hat OpenShift Service Mesh 2.2.3 版中包含的组件版本 组 组件 件 版本 版本 Istio 1.12.9 Envoy Proxy 1.20.8 Jaeger 1.36 Kiali 1.48.3 1.2.2.2. Red Hat OpenShift Service Mesh 版本 版本 2.2.2 的新功能 和更高版本的支持。 1.2.2.2.1. Red Hat OpenShift Service Mesh 2.2.2 版中包含的组件版本 组 组件 件 版本 版本 Istio 1.12.7 Envoy Proxy 1.20.6 Jaeger 1.36 Kiali 1.48.2-1 1.2.2.2.2. 复制路由标签 在这个版本中,除了复制注解外,您还可以为 OpenShift 路由复制特定的标签。Red0 码力 | 344 页 | 3.04 MB | 1 年前3Extending service mesh capabilities using a streamlined way based on WASM and ORAS
service mesh capabilities using a streamlined way based on WASM and ORAS 王夕宁 | 阿里云服务网格ASM 2 Envoy’s Filter Chain Listener Downstre am Filter Filter Filter Cluster Upstrea m Filter Chain 扩展自定义Filter Filter Chain 4 实际示例中用到的Envoy Filters 端口9080 监听 envoy.filte rs.network .metadata _exchange envoy.http _connectio n_manage r Cluster Productp age服务 Filter Chain envoy.filters.ht tp.wasm/envo y.wasm istio-proxy curl localhost:15000/config_dump envoy.filters .http.cors envoy.filters .http.fault envoy.filters .http.router envoy.filters.ht tp.wasm/envo y.wasm.stats envoy.filters.ht tp.wasm/xxx- wasmfilter0 码力 | 23 页 | 2.67 MB | 1 年前3Preserve Original Source Address within Istio
here can be load balancers like envoy/haproxy/nginx which have already supported proxy protocol #IstioCon Istio Traffic Flow – inner cluster svcA svcB envoy envoy Pod1:10.244.0.20 Pod2:10.244.0.25 Flow - ingress svcB envoy envoy Pod1:10.244.0.19 Pod2:10.244.0.25 Dest: 127.0.0.1 Src:127.0.0.1 Ingress gateway ELB ingress EIP: 192.168.1.100 #IstioCon What does envoy provide? - Original source source filter “envoy.filters.listener.original_src” The original source listener filter replicates the downstream remote address of the connection on the upstream side of Envoy. For example, if a downstream0 码力 | 29 页 | 713.08 KB | 1 年前3严选 ServiceMesh 实践
2017年1月23日 加入 CNCF 2017年4月25日 1.0Releases Linkerd 2016年9月13日 1.0Releases 2017年9月14日 加入 CNCF Envoy 2017年9月15日 发布 最新版本:0.7.1 nginmesh 2016年9月29日第一次被公开提出 Service Mesh 概念正式提出9/24 云原生 Service Mesh 中, 自动注入,自动接管流量,部署过程对业务 透明 • 提供了完整的 Service Mesh 解决方案 • 数据面:Envoy • 控制面:Pilot,Mixer,Citadel,Galley10/24 功能视角 - 服务治理能力 – 基于Istio+Envoy 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 X/2.X,GRPC,WebSocket,Dubbo, Thrift √ 路由控制:静态路由、动态路由、流量染色、分流控制等 √ 负载均衡:支持 RR、权重、一致性 Hash 等 √ 流量复制:Envoy 自带 √ 故障转移 √ 安全 访问控制:RBAC vs Mixer √ 治理控制 熔断降级 √ 限流 √ 中间件 资源隔离 √ 故障注入 √ 超时控制、重试、重写、重定向等 √0 码力 | 25 页 | 2.07 MB | 5 月前3
共 130 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13