Envoy原理介绍及线上问题踩坑iptables http/1.x h2c cluster L7过滤 L4过滤 监听过滤 下游 连接 上游 连接 outbound • APP发出的请求被iptables拦截,并根据源信息判断为outbound被DNAT后拦截进入Envoy 15001端口 • 15001上监听器通过ORIGINAL_DST获取原始目标地址(服务的clusterIp),匹配业务监听器(不真正监听网络)地址并传递新建下游连接。 POD地址,无需再提取后转到不同业务监听器,因此virtualinbound负责TLS、ALPN及HTTP协议版本判断。 • L4层网络过滤器metadata_exchange首先解析请求中包含的源POD元数据信息,并同时发送回本Envoy代理POD的元数据信息。之后进入L4层 http_connection_manager网络过滤器。 • L7层处理流程同outbound方向,区别为inbo 建立成 功后,第二个连接的SYNC包将被当作重复包丢弃,导致第二个连接建立失败。 解决 方案 1、与客户沟通拆分两个微服务到不同的POD(符合微服务拆分原则) 2、如果无法拆分微服务,则需要解决源端口重用的问题,目前没有采用此种方法。 TCP五元组:(不能重复,否则conntrack无法区分) srcip:srcport,prot,dstip:dstport APP backend10 码力 | 30 页 | 2.67 MB | 1 年前3
百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu①bns, 百度内部基础设施层,服务发现。 ②bns-agent,服务发现接入层。 ㊟ 内核劫持:Loopback方案 Ø loopback地址的管理和分配。 Ø 需要打通业务和loopback之间的映射管 理。 RPC劫持:可扩展方案 Ø envoy启动后注册port到bns-agent。 Ø rpc框架查询bns-agent IP与治理策略数据。 Ø bns-agent判断否使用envoy进行服务治理。0 码力 | 9 页 | 2.20 MB | 1 年前3
探讨和实践基于Istio的微服务治理事件监控部署应用基于Mixer的二次开发Hanlder Handlers 。为适配器提供配置。例如,到后端的 URL 、证书、缓存选项等等。基于Mixer的二次开发Instances Instances。属性映射。基于Mixer的二次开发Rules Rules。将数据交付给适配器。 定义了一个特定的 Instance 何时调用一个特定的 Handler插件编译和镜像打包 插件的编译 CGO_ENABLED=00 码力 | 29 页 | 8.37 MB | 6 月前3
Istio 与 Knative 踩坑实录业务为 go 语言或 nodejs 语言的简单接口 3.6 秒 额外内存占用 30~60 MB 为 queue-proxy 占用21/25 踩过的坑/问题 FAAS 实践进展 • 镜像源问题 • RevisionUnkown 状态(0.8版本) • Queue-proxy 内存增长(0.8版本) • Activator 重复创建并占用大量资源22/25 Knative 当前瓶颈0 码力 | 26 页 | 1.35 MB | 6 月前3
共 4 条
- 1













