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

我定义了多种模式来安装它:

  1. 舵图 //github.com/lucky-sideburn/KubeInvaders/tree/master/helm-charts/kubeinvaders

  2. 使用模板手动安装Openshift //github.com/lucky-sideburn/KubeInvaders#install-kubeinvaders-on-openshift

  3. 手动安装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新闻 在推特上.