BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Bloomberg发布了专用于Kubernetes的开源混沌测试工具PowerfulSeal

| 作者 Daniel Bryant 关注 764 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2018年1月30日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

近期在美国Austin市举行的KubeCon北美大会上,Bloomberg展示了它们最新开源的“PowerfulSeal”工具。该工具支持在Kubernetes集群内使用停用目标Pods和底层节点架构的方式开展混沌测试。Kuberneters是一种在微服务部署中广为使用的容器编排平台。混沌工程实践有助于弹性系统的构建。

PowerfulSeal遵循“混沌工程原则”,设计灵感来自于著名的Netflix Chaos Monkey。该工具支持工程师“故意地破坏系统”,并观察在引入各种故障模式下会发生什么问题。PowerfulSeal使用Python编写,当前专用于Kubernetes,并提供了“云驱动器”,可用于管理OpenStack平台上的架构故障。PowerfulSeal还给出了一个Python的AbstractDriver类,鼓励贡献者开发可用于更多云平台的驱动器。

PowerfulSeal提供交互和自治两种工作模式,:

  • 交互模式支持运行工程师发现集群中的组件,手工生成一些故障情况并探究后果。该模式支持对节点Pod部署命名空间的操作。

  • 自治模式会读取一个定义了一定数量Pod和节点故障场景的策略文件,并按指定文件设定方式对系统做“破坏”。在每种场景中,定义了一系列在集群上执行的匹配、过滤和动作。下面给出了一个最小化的非操作(no-op)JSON策略文件的例子。该文件本身并不会生成任何故障,但是可以进一步将故障定义在JSON文件的“nodeScenarios”和“podScenarios”节中。

config:
  minSecondsBetweenRuns: 47
  maxSecondsBetweenRuns: 452

nodeScenarios: []
podScenarios: []

每个故障场景是由匹配、过滤和动作组成的。其中,匹配和过滤可定义为目标节点名称、IP地址、Kubernetes命名空间和标签、时间和日期等,动作可定义为start、stop和kill等。策略文件可使用完整的JSON schema验证。在项目的“tests”目录中提供了一个策略文件的例子,其中列出了一些主要的可用选项。

PowerfulSeal可以通过pip安装。可以通过如下过程,初始化并配置用于Kubernetes集群的命令行工具:

  • 通过指定一个Kubernetes配置文件,将PowerfulSeal指向目标Kubernetes集群。
  • 通过指定适当的云驱动器和证书,将PowerfulSeal指向底层云IaaS平台。
  • 确保PowerfulSeal可以通过SSH登录节点并执行命令。
  • 编写所需的策略文件,并将策略文件加载到PowerfulSeal。

在过去一年中,混沌工程和弹性工程受到了日益广泛的关注。在此领域,已经推出了首个商业工具,即Gremlin。但是该领域的一些思想领袖,例如Adaptive Capacity Labs的联合创始人John Alspaw,已经警告说不应忽视弹性工程中的人为因素。该警告应得到重视,因为人的因素事实上要比相关的工具更加重要。

Gremlin Inc的CEO Kolton Andrus也指出,仅依靠工具是远远不够的。他进而提出,混沌工程需要训练工程师团队和运行“游戏日”,操练工程师明确应如何对失败做出响应(Andrus在近期InfoQ podcast中对此做了详细的介绍)。就如何建立混沌工程实践并使之成熟化,Netflix的高级混沌工程师Nora Jones也在近期的InfoQ Podcast中分享了她的一些想法。

在PowerfulSeal项目的GitHub README中,提供了更多的细节,并给出了交互式演示。在CNCF YouTube频道上,可以看到此次KubeCon大会演讲“使用PowerfulSeal测试运行在Kubernetes上的分布式软件(Testing Distributed Software on Kubernetes with PowerfulSeal)”的视频。

查看英文原文: Bloomberg Release Open Source “PowerfulSeal” Kubernetes-Specific Chaos Testing Tool

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT