KubeInvaders-Kubernetes的游戏化混沌工程工具
s Eugenio Marzo,Sourcesense
几个月前,我发布了我的最新项目KubeInvaders。的 我第一次与社区分享是在Openshift期间 下议院简报会。 Kubenvaders是游戏化混沌工程 Kubernetes和Openshift的工具,可帮助测试您的弹性 Kubernetes集群是一种有趣的方式。
它就像太空侵略者,但外星人是豆荚。
在Codemotion Milan 2019的演讲中,我开始说“ 当然,您可以使用几行Bash来做到这一点,但这很无聊。”
使用上面的代码,您可以杀死Kubernetes集群中的随机Pod,但是我 认为使用KubeInvaders的飞船会更有趣。
我在以下位置发布了代码 //github.com/lucky-sideburn/KubeInvaders 并且有一个小社区正在逐渐发展。有些人 喜欢在演示会议上使用它杀死大屏幕上的豆荚。
如何安装KubeInvaders
我定义了多种模式来安装它:
舵图 //github.com/lucky-sideburn/KubeInvaders/tree/master/helm-charts/kubeinvaders
使用模板手动安装Openshift //github.com/lucky-sideburn/KubeInvaders#install-kubeinvaders-on-openshift
手动安装Kubernetes //github.com/lucky-sideburn/KubeInvaders#install-kubeinvaders-on-kubernetes
当然,首选方法是使用Helm图表:
# Please set target_namespace to set your target namespace!
helm install --set-string target_namespace="namespace1,namespace2" \
--name kubeinvaders --namespace kubeinvaders ./helm-charts/kubeinvaders
如何使用KubeInvaders
将其安装在您的群集上后,您可以使用以下内容 functionalities:
- 键“ a”-切换到自动导航
- 键“ m”-切换至手动导航
- 键“ i” —显示窗格的名称。将船移向外星人
- 键“ h” —打印帮助
- 键'n'-在不同的名称空间之间跳转(我最喜欢的功能!)
调优KubeInvaders
在Codemotion Milan 2019上,我和我的同事组织了一张办公桌 玩KubeInvaders的游戏站。人们不得不与Kubernetes战斗才能 win a t-shirt.
如果您的Pod需要几秒钟才能启动,则可能会丢失。它 可以通过以下参数设置游戏的复杂性: Kubernetes部署中的环境变量:
- ALIENPROXIMITY-减小此值可增加外星人之间的距离;
- HITSLIMIT-射击前等待的CPU时间(以秒为单位);
- UPDATETIME —在更新广告连播状态之前要等待的秒数(您也可以设置0.x Es:0.5);
结果是在机器上的较难的游戏体验。
用例
在生产环境中采用混乱的工程策略是 真的很有用,因为这是测试系统是否支持的唯一方法 意外的破坏性事件。
KubeInvaders是一款游戏-所以请不要太在意它! -但它表明 一些重要的用例:
- 测试Kubernetes集群在意外删除Pod上的恢复能力
- 收集Pod重新启动时间等指标
- 调音准备就绪探针
下一步
我想继续添加一些很酷的功能,并将其集成到 Kubernetes仪表板,因为我正计划将其转换为 “用于Kubernetes的游戏化混沌工程和开发工具”,以帮助 开发人员与Kubernetes环境中的部署进行交互。对于 example:
- 指向外星人获取吊舱日志
- 通过拍摄一些特定对象来部署Helm图表
- 读取存储在部署中存在的特定标签中的消息
请随时为 //github.com/lucky-sideburn/KubeInvaders 并保持关注#kubeinvaders新闻 在推特上.