Envoy原理介绍及线上问题踩坑设计及开发工作。 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 3 目录 1. Envoy启动及配置文件 2. Envoy流量拦截原理、常用部署方式 3. Envoy可扩展过滤器架构、可观测性 4. Envoy线程模型 5. 生产环境问题分析及解决方法 6. 针对Envoy做的一些优化及效果 Virtual inbound -15006 kubelet 拦截指定命名空间 Pod创建请求 xDS Iptables 规则 ./etc/istio/proxy/SDS 证书 获取 配置 文件 可以修改全局注入参数 作用于所有目标空间的 pod 证书更新 Envoy启动流程 Envoy控制面流量 Envoy数据面流量 ./etc/istio/proxy/XDS SDS xDS istio-init容器添加用于配置容器网络内iptables规则 • istio-proxy容器启动pilot-agent进程,使用UID=1337 GID=1337创建Envoy启动命令行与配置文件 • 可以通过自定义deployment内istio注解sidecar.istio.io/inject: “false”跳过自动注入过程,或修改部分启动参数。 • 2. 控制面通信 • Pil0 码力 | 30 页 | 2.67 MB | 1 年前3
13 Istio 流量管理原理与协议扩展 赵化冰流量管理 – 控制面 两类数据: q 服务数据(Mesh 中有哪些服务?缺省路由) v Service Registry § Kubernetes:原生支持 § Consul、Eureka 等其他服务注册表:MCP over xDS (https://github.com/istio-ecosystem/consul-mcp) v 通过CRD定义的服务数据 q 自定义流量规则(如何将请求路由到这些服务?) 服务发现 • K8s Service : Pilot 直接支持 • ServiceEntry: 手动添加 Service 到 Pilot 内部注册表中 • WorkloadEntry:单独添加 Workload,对于虚机支持更友好 • MCP 适配器: 将第三方注册表中的服务加入到 Pilot 中 Consul MCP Adapter https://github.com/istio-ecosystem/consul-mcp 路由 • 根据 Header • 根据 URI 路由 目的地流量策略配置 • LB 策略 • 连接池配置 • 断路器配置 • TLS 配置 Gateway External Service 统一网格出口 • 出口地址(Gateway Workload) • 出口端口 Virtual Service CLB 对外请求 对外请求(Passthrough/ServiceEntry) 缺省路由 (服务名)0 码力 | 20 页 | 11.31 MB | 6 月前3
Service Mesh in China文档翻译活动 • 2018 年 6 月,由蚂蚁金服发起的 ServiceMesher 社区在杭州举办第一届 meetup • 2018 年 6 月,ServiceMesher 发起了 Istio 官网翻译活动 • 2019 年 3 月,社区发起了《Istio Handbook》共创活动 翻译 -> 线下交流(经验分享)->原创、实践与上游贡献 #IstioCon Service Mesh Meetup0 码力 | 13 页 | 2.66 MB | 1 年前3
全栈服务网格 - Aeraki 助你在
Istio 服务网格中管理任何七层流量Redis RedisServie RedisDestination #IstioCon Aeraki Demo: Dubbo 协议支持 ● Dubbo2Istio 连接 Dubbo 服务注册表,支持: ○ ZooKeeper ○ Nacos ○ Etcd ● Aeraki Dubbo Plugin 实现了控制面的管理,支持 下述能力: ○ 流量管理: ■ 七层(请求级别)负载均衡 #IstioCon Aeraki 后续开源计划 ● Istio 增强工具集 ○ 协议扩展:Dubbo、Thrift、Redis、 MetaProtocol ○ 性能优化:LazyXDS ○ 注册表对接:dubbo2istio、consul、 Eureka ○ ... ● 独立组件、非侵入、厂商中立 ● 助力 Istio 服务网格产品化 Thank you!0 码力 | 29 页 | 2.11 MB | 1 年前3
探讨和实践基于Istio的微服务治理事件监控Adapter与mixer代码需要一起打包编译,最终生成 一个可执行文件。 Adapter作为grpc服务端,运行在独立的pod当中, Mixer通过通过rpc调用,将属性与日志发送给Adapter。基于Mixer的二次开发的流程 • 编写grpc服务端程序,接收来自mixer的数据,并实现自身业务逻辑 • 编写handler、instance、rule配置文件 • 编译打包adapter,上传至docker仓库 r仓库 • 编写k8s的deployment和service配置文件 • 部署应用基于Mixer的二次开发Hanlder Handlers 。为适配器提供配置。例如,到后端的 URL 、证书、缓存选项等等。基于Mixer的二次开发Instances Instances。属性映射。基于Mixer的二次开发Rules Rules。将数据交付给适配器。 定义了一个特定的 Instance 何时调用一个特定的0 码力 | 29 页 | 8.37 MB | 6 月前3
Istio + MOSN 在 Dubbo 场景下的探索之路onsole) 获取一些资源(Kubernetes 中使用 Informer 机制获取 Node、Endpoint、 Service、Pod 变化) • 根据用户的配置(CR、MCP 推送,文件) 触发推送流程 推送流程 • 记录变化的资源类型 • 根据变化的资源类型整理本地数据 • 根据变化的资源类型判断需要下发的 xDS资源 • 构建 xDS 资源,下发到连接的 Sidecar10/23 Network 的简称。 MOSN 可以与任何支持 xDS API 的 Service Mesh 集成,亦可以作为独立的四、七层负载均衡, API Gateway,云原生 Ingress 等使用。 配置文件 • mosn_config : MOSN 的配置信息 • listener : LDS • routers : RDS • cluster : CDS 和 EDS13/23 MOSN-listener14/230 码力 | 25 页 | 3.71 MB | 6 月前3
Istio控制平面组件原理解析u启动envoy u热重启envoy u监控envoy u优雅关闭envoy启动envoy ü监听/etc/certs目录 ü生成envoy静态配置文件envoy-rev0.json ü通过exec.Command启动 envoy并监听状态 • 文件配置文档 • 启动参数文档热重启envoy热重启涉及以下步骤 • Pilot-Agent只是负责启动S,其他步骤由envoy完成。 • 1. 启动另外一个S进程(Secondary0 码力 | 30 页 | 9.28 MB | 6 月前3
Extending service mesh capabilities using a streamlined way based on WASM and ORAS������������� ASMFilter Deployment 资源对象 Controller (Watch & Reconcile) Istio EnvoyFilter CR wasm filter二进 制文件 服务网格ASM Pod K8s集群 Proxy Service A Volume 挂载 Envoy配置 17 ASMFilterDeployment CR示例 ● 创建ASMFilterDeployment workloadSelector: labels: app: productpage version: v1 20 更新后的Deployment - 以hostpath方式挂载wasm filter文件到Proxy容器 apiVersion: extensions/v1beta1 kind: Deployment metadata: .… spec: …. template: metadata:0 码力 | 23 页 | 2.67 MB | 1 年前3
共 8 条
- 1













