Istio控制平面组件原理解析
V2通过GRPC双向流,主动推送配置给envoy: ü事件触发 • 当配置有增/删/改事件 ü定时触发 • 可配置环境变量 V2_REFRESH,定时推送配置Mixer——遥测报告 u上报的原始数据 u异步Flush给Adapter u转换成属性词汇 u问题讨论属性词汇 Name Type Description Kubernetes Example source.id string Platform-specific "bc1f172f-b8e3-4ec0-a070-f2f6de38a24f","718"]转换成属性词汇异步Flush到Adapter ü通过Template润色数据 ü使用Go的协程异步Flush到Adapter üAdapter展示数据 ü响应envoy数据处理完成问题讨论 Report流程回顾 üEnvoy异步批量发送数据给Mixer üMixer使用协程池处理Adapter ü处理完成所有Adapter才响应Envoy0 码力 | 30 页 | 9.28 MB | 5 月前3Envoy原理介绍及线上问题踩坑
进行连接负载均衡处理后,选择最终的业务监听器处理新连接。 • 之后对于此连接的所有处理都在此线程进行,包括下游数据集解码,路由选择、上游数据编 码发送等。 • 同时此工作线程还要处理定期观测信息与主线程同步(通过异步加回调)、线程内配置及集 群管理器状态更新等工作。 • 请求完成后延迟释放内存,解决本次事件处理中回调所引用对象可以被安全访问,并在下次 事件处理中安全删除。 admin连接 数据面连接 主 onNewConnection,onData数据接收。 • 对于HTTP协议,将继续经过L7层编解码处理后向上游发 送请求。 • 当请求处理完毕后,将调用deferredDelete删除请求对象 并记录统计观测数据。 • 使用异步I/O方式发送网络数据,降低对线程内其他操作 的阻塞。 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 15 关系,因此Response匹配的对上游进行L7层过滤器解码、通过Router关联关系找到下游并编码发送 HTTP请求(POD1处理类似)。 • 以上所提到的Envoy L4层网络读取及数据发送为全异步读写模式,采用网络事件触发机制完成响应数据的接收和发送。 • 由于Router部分请求处理方向需要进行更多路由选择计算及负载均衡计算工作,因此通常outbound方向处理较复杂,CPU消耗比inbound更高。0 码力 | 30 页 | 2.67 MB | 1 年前3SolarMesh 基于Istio构建的流量监管平台
问题的源头 服务间交互的复杂性: Ø 难以可视化 Ø 难以全面测试 Ø 多服务联动时问题难以察觉 Ø ... 服务间通信的复杂性: Ø 网络延迟 Ø 消息序列化 Ø 不可靠的网络 Ø 异步机制 Ø ... 开发难 排错难 测试难 运维难 Ø 服务变得非常多 Ø 版本变得非常复杂 Ø 上线十分痛苦 Ø 排查问题更难 Ø 解决手段更复杂 Ø 学的东西更多 Copyright0 码力 | 20 页 | 1.29 MB | 1 年前3
共 3 条
- 1