linux怎么查看本机内存大小
413
2022-10-28
第三十三章 九析带你轻松完爆 Istio - fault injection 故障注入
系列文章:总目录索引:九析带你轻松完爆 istio 服务网格系列教程
目录
1 前言
2 邀约
3 故障注入简介
4 Istio 故障注入
5 Istio 故障注入实例
5.1 客户端资源文件
5.2 k8s 服务文件
5.3 部署工作负载(deployment)
5.4 虚拟服务文件
6 验证故障注入
1 前言
如果你对博客有任何疑问,请告诉我。
2 邀约
你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:
3 故障注入简介
很多年前,我看过这样一部电影:
没错,周星驰演得,逃学威龙2。电影的开头讲述了周星驰的飞虎队执行反恐演习,在最后却误射了可爱的小骚妹。
但是这跟故障注入有神马关系呢?
周星驰的反恐演习其实并不是真的反恐,而只是演习;故障注入本身也并没有故障,而是人为引入故障。这种机制都是为了测试和提高体系健壮性的手段。
在程序开发过程中,我们经常会有这样的场景,比如要测试调用第三方服务失败后系统的反应,或者上游服务雪崩时下游服务逻辑处理等。如果没有故障注入,那么我们就只能采用断网、压测等手段模拟故障,但是这样的操作实在费事费力,一点都不随风。
4 Istio 故障注入
Istio 故障注入与其他在网络层引入错误(例如延迟数据包或者直接杀死 Pod)的机制不同,Istio 允许在应用程序层注入故障。这使得可以注入更多相关的故障,比如 HTTP 错误代码等。
Istio 可以注入两种类型的故障,而这两种故障都是使用虚拟服务来配置的:
延迟:模拟增加网络延迟或上游服务过载。中止:模拟服务故障而导致调用服务不可用。中止通常以 HTTP 错误代码或 TCP 连接失败表示
5 Istio 故障注入实例
本实例包括 4 个资源文件,3 个 k8s 相关,1 个 istio 相关:
jiuxi-client.yaml jiuxi-nginx-svc.yaml jiuxi-nginx-deploy.yamljiuxi-nginx-vs.yaml
5.1 客户端资源文件
jiuxi-client.yaml 内容如下:
执行如下语句进行 Istio 注入,注入后,此 client 将处于网格之内:
istioctl kube-inject -f jiuxi-client.yaml | kubectl apply -f -
Istio 注入成功成功如下图所示:
5.2 k8s 服务文件
jiuxi-nginx-svc.yaml 内容如下:
执行如下语句部署 service:
kubectl apply -f jiuxi-nginx-svc.yaml
5.3 部署工作负载(deployment)
jiuxi-nginx-deploy.yaml 内容如下:
部署语句如下:
kubectl apply -f jiuxi-nginx-deploy.yaml
5.4 虚拟服务文件
故障注入就在虚拟服务资源中,内容如下:
部署语句如下:
kubectl apply -f jiuxi-nginx-vs.yaml
自此,整个实例部署完毕。
6 验证故障注入
执行如下语句登录客户端:
kubectl exec -it client-5b77d5949f-clrb7 -- sh
使用 wget 访问 nginx-svc:
wget -q -O - 5s。除去我中间操作花去了大约 3s,发现最终的延迟确实是 5s。如下图所示:
自此,九析带你轻松完爆了 Istio 故障注入。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~