"); //-->
本文分享自天翼云开发者社区《服务网格自动故障检测及流量切换方案》,作者:s****n
随着云原生技术的发展,越来越多的应用采用容器,微服务技术,以istio为代表的服务网格就是其中最广泛使用的一种。它在业务容器创建时,自动向业务服务的pod中注入proxy容器边车,将流入和流出业务容器的网络流量全部劫持到proxy容器,经由proxy容器处理后再进行下一步转发。
Proxy容器的处理规则通过istiod控制面下发,主要分为流量控制、安全、可观测性三大类。以可观测性为例的大量规则都仅对流经的数据进行统计,监控,链路追踪等附加操作,不影响和改变业务本身的请求。但是当proxy容器自身或其依赖的服务出现问题时,因其流量劫持动作,往往会造成整个服务不可用。
目前处理此类问题的方法,以人工干预为主,当服务不可用时,通过告警通知运维人员,运维人员进行现场问题定位及处理。在有proxy边车的场景下,若proxy问题不能快速解决,运维人员也经常需要手动去除proxy容器边车,先恢复业务流量再做细致排查。如果能自动化检测proxy故障并进行及时处理,会大大提供微服务框架下的服务可用性,减少故障带来的损失及人力排查成本
实现方案如下:
整体结构:

具体方法:
1.在istio控制面加入故障检测及流量阻断模块‘hot-switch’.
2.在istio的边车代理proxy内部加入故障检测命令,并与控制面故障检查模块通信,具体检测命令例如:
a.Watch相关pod的proxy容器状态,当容器状态为fail时,表示proxy容易已经不再存活;
b.通过检查proxy容器的15021 health端口,若返回值false,则proxy存活但不健康等等;
3.自动检测确认代理proxy问题后,hot-switch通过进入pod执行iptables相关命令,停止proxy的流量劫持,将流量模式由proxy控制管理,改为直通业务容器
a.在pod启动前,proxy进行流量劫持的过程:首先运行 Init 容器,Init 容器用于设置 iptables 将进入 pod 的流量劫持到 Envoy sidecar proxy。
具体命令类似 :Istio-iptables -p 15001 -z 15006 -u 1337 -m REDIRECT -i '*' -x "" -b * -d "15090,15201,15020"
envoy sidecar proxy 启动之后从pilot获得动态的规则,来对进出流量进行控制,流量劫持后的链路如下

b.检测确认proxy问题后,通过iptables的反向命令,清除流量劫持规则,可用命令为 istio-clean-iptables
该方案无需人工参与,可自动检测问题,快速处理,在网格边车出现故障的时候也能通过一定程度的服务降级,最大程度保障服务的基本可用性
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
消息称谷歌首款 AR 眼镜年内上市售卖,将在本周 I/O 大会发布
基于云计算的元器件查找软件,包含海量在线数据库
仿人型机器人能同时流利地说15种语言
IT有明天:大转换中的云计算
云的数据安全与监控
F5基于云计算平台的虚拟桌面连接解决方案
打造可靠的云存储技术
消费电子云方案
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
云计算掀起智能硬件变革的浪潮
基于云计算技术的日志管理系统
2016物联网大会宣传片
全球云计算市场迎来重大价格调整
云计算驱动联想持续创新
软件安全成为嵌入式云计算的热点
今年五月份是汽车电子,测试测量和云计算三大热点!
Android云计算之移动点餐系统分析与设计
到2030年,AI与云原生转型将推动全球电信网络市场规模达到248亿美元
由Memfault驱动的Nordic nRF Cloud荣获移动突破奖所颁发之年度云计算创新奖
应用于数据中心(DataCenter)的 Smarter Solution
台积电AI产能:英伟达的需求可能迫使实现翻倍
将AI工作负载推向边缘
传说中的云计算、云存储是不是和这东西有关?
美图获阿里巴巴2.5亿美元战略投资,将在AI与电商领域深度合作
何为“云计算”
云计算在IC设计中的应用
云计算掀起智能硬件变革的浪潮
Upwind筹集2.5亿美元以实现云安全规模化