IstioMeetupChina 服务网格热升级技术分享IstioMeetup 服务网格数据平面热升级技术分享 ServiceMesh Data-Plane Hot-Upgrade 阿里云服务网格团队 – 史泽寰 • 为什么需要服务网格数据面热升级 • 实现热升级 • 实践热升级 目录 Catalog 2 为什么需要服务网格数据面热升级 Why do we need Hot-Upgrade for ServiceMesh Data-Plane 造成请求失败,影响业务质量 • 重启Pod导致业务容器也被重启,需要执行重新初始化 • 不增加workload数量升级,则服务容量受损 • 增加workload保持服务容量不变,应对大规模场景难以在扩容规模和操作便捷度上取 得令人满意的平衡 传统Sidecar升级方式的缺点 3 为什么需要服务网格数据面热升级 Why do we need Hot-Upgrade for ServiceMesh Data-Plane 败 • 易于运维,可以控制升级策略 理想的Sidecar升级 4 • 为什么需要服务网格数据面热升级 • 实现热升级 • 实践热升级 目录 Catalog 5 • Envoy热重启 • 以Epoch + 1的方式启动新实例,触发热重启 • ListenSocket转移到新实例 • 旧实例进行排水,不再接受新的请求 • 排水结束后旧实例退出,热重启完成 References:0 码力 | 14 页 | 2.25 MB | 1 年前3
百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu#IstioCon 百度APP基于Istio实现 基础架构升级 许超 #IstioCon 背景 l 核心业务线已完成微服务改造,数万个微服务对架构服务治理能力提出了更高的要求。 l 高级架构能力能否多语言、多框架支持? l 运维架构能力是否具备可移植性?是否能低成本复制新的产品线? l 可观测性不足,是否有通用机制提升产品线可观测性? Ø 部分模块上下游超时配置不合理,超时倒挂,集中管理调整成本比较高。 部分模块上下游超时配置不合理,超时倒挂,集中管理调整成本比较高。 Ø 多数模块对单点异常,慢节点等异常缺乏容忍能力,推动每个模块独立修复,成本高,上线周期长。 Ø 因重试导致雪崩,底层RPC框架需要重复建设来定制动态熔断能力。 Ø 升级一级服务建设中,发现很多模块单点、多点故障不能容忍,能否低成本解决? Ø 比如常用运维降级、止损能力各个产品线重复建设,方案差异大,OP期望运维能力在不同产品线之间能够通用化, 集中化管理,甚至做到自动决策 服务发现实现透明流量劫持。 Ø 自建配置中心,产品化封装。 l 关键技术 Ø 内核劫持,使用Loopback IP 与 服务发现一一对应。 Ø RPC劫持,构建可快速扩展标准方案。 Ø 自身稳定性,降级(兜底)、隔离、监控多种方式保证。 ①bns, 百度内部基础设施层,服务发现。 ②bns-agent,服务发现接入层。 ㊟ 内核劫持:Loopback方案 Ø loopback地址的管理和分配。0 码力 | 9 页 | 2.20 MB | 1 年前3
Envoy原理介绍及线上问题踩坑worker线程: • 通过启动配置参数concurrency指定,不支持动态调整。 • 启动virtualoutbound/virtualinbound网络监听,每个工作线程都对此监听端口进行监听。 由内核随机挑选监听线程处理新连接。 • 进行连接负载均衡处理后,选择最终的业务监听器处理新连接。 • 之后对于此连接的所有处理都在此线程进行,包括下游数据集解码,路由选择、上游数据编 码发送等。 • 状态。 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 14 Envoy网络及线程模型-网络处理 系统内核 Worker Thread Dispatcher LibeventDispatcher 待清理对象 ListenerManager Listener Connection 创建 监听 监听器 • Envoy启动时创建的Listener与工作线程绑定并启动监听 (向libevent注册Read回调onSocketEvent),并进入阻 塞运行状态,直到进程退出。 • 当新连接到达时,内核网络协议栈调用回调并创建新连接 的Socket。 • 通过ConnectionHandler调用监听过滤器获得真实访问目 标地址 • 根据目标地址匹配得到业务监听器后创建Connection连接0 码力 | 30 页 | 2.67 MB | 1 年前3
Istio控制平面组件原理解析-Agent——管理生命周期(PA) u启动envoy u热重启envoy u监控envoy u优雅关闭envoy启动envoy ü监听/etc/certs目录 ü生成envoy静态配置文件envoy-rev0.json ü通过exec.Command启动 envoy并监听状态 • 文件配置文档 • 启动参数文档热重启envoy热重启涉及以下步骤 • Pilot-Agent只是负责启动S,其他步骤由envoy完成。 S初始化成功,通知P停止监听新的链接并优雅关闭未完成的工作 • 5. 在P优雅关闭过程中,S会从共享内存中获取stats • 5. 到了时间S通知P自行关闭 • 6. S升级为P • 官方博客:Envoy hot restart什么时候会进行热重启?监控envoy ü获取非正常退出状态 ü抢救机制触发 ü抢救令牌减少一个(总共10个) ü在2(n-1) * 200毫秒后执行(为什么不立即执行)0 码力 | 30 页 | 9.28 MB | 6 月前3
SolarMesh 基于Istio构建的流量监管平台1. 流量告警 / 发现页面报错 2. 看图 3. 直接找到故障位置 Copyright © 2021 Cloud To Go 应用场景 - 灰度版本迁移 传统的版本升级方式 使用solarmesh的版本升级方式 1. 打好部署包 2. 等到半夜 3. 部署一个机器 4. 使用模拟的测试数据测试 1. 打好部署包即可部署 2. 用真实的数据测试 3. 挑个良辰吉日分配流量,宣布更新0 码力 | 20 页 | 1.29 MB | 1 年前3
Istio 与 Knative 踩坑实录Istio 作为服务网格解决方案时的相关实践和经验9/25 隔离中间件 Istio 的价值和问题10/25 服务网格带来自由 Istio 的价值和问题 • 语言和技术栈的自由 • 中间件升级和切换的自由 • 不被供应商绑定的自由11/25 兼容新旧服务体系 Istio 的价值和问题12/25 兼容新旧调用链体系 Istio 的价值和问题13/25 灰度发布 Istio 的价值和问题14/250 码力 | 26 页 | 1.35 MB | 6 月前3
Istio 在 Free Wheel 微服务中的实践Istio其他配置管理没有防抖动处理( VirtualService/DestinationRule等),如果用程序自动化注入这些 配置要注意在客户端实现限流 • Istio的配置管理缺少兼容性设计,CRD无法做到平滑升级 • Istio的架构和基本原理 • FreeWheel的Istio实践 • 未来工作 • FreeWheel的痛点 未来工作 • Service Contract: 封装Istio以及平台层的其他配置的复杂度,抽象出0 码力 | 31 页 | 4.21 MB | 1 年前3
共 7 条
- 1













