[kube 022] 混沌测试框架 -Litmus
[kube 022] 混沌测试框架-Litmus
Litmus
是进行云原生混沌工程的开源工具集。Litmus
提供了一些工具来协调Kubernetes
上的混乱情况,以帮助SRE
发现其部署中的弱点。SRE
最初在staging
环境中使用Litmus
进行混乱的实验,最终在production
中使用它们来发现错误和漏洞。修复弱点可提高系统的弹性。
Litmus
采用云原生方法来创建,管理和监视混乱。使用以下Kubernetes Custom Resource Definitions (CRDs)
编排混沌:
ChaosEngine:将
Kubernetes
应用程序或Kubernetes
节点链接到ChaosExperiment
的资源。Litmus
的Chaos-Operator
监视ChaosEngine
,然后调用Chaos-Experiments
ChaosExperiment:用于分组混沌实验的配置参数的资源。当
ChaosEngine
调用实验时,ChaosExperiment CR
由operator
创建。ChaosResult:用于保存混沌实验结果的资源。
Chaos-exporter
读取结果并将度量导出到已配置的Prometheus
服务器中。
混沌实验位于hub.litmuschaos.io
上。它是应用程序开发人员和云厂商共享混乱实验的中央枢纽,以便他们的用户可以使用它们来提高应用程序在生产中的弹性。
在本文中,我们将运行一些混乱的实验来验证系统的弹性。
准备工作
请准备好一个Kubernetes
集群以及链接该集群的kubectl
和helm
。
操作记录
主要分为以下过程:
安装Litmus Operator
使用Chaos Charts
创建Pod删除混沌实验
查看混沌的实验结果
查看混沌的实验日志
安装 Litmus Operator
让我们执行以下步骤在集群中安装Litmus:
安装 litmus-operator-latest:
确认 Litmus Chaos Operator 的 pod 运行状态:
确认 chaos CRDs:
确认 chaos api resources:
确认 chaos clusterrole 和 chaos clusterrolebinding:
现在,我们在集群中已经正常运行了Litmus Chaos Operator
。接下来,我们需要部署混乱的实验来测试集群资源的弹性。
使用 Chaos Charts
Litmus Chaos Charts
用于安装混沌实验包。混沌实验包含实际的混沌细节。让我们执行以下步骤为Litmus Operator
安装Litmus Chaos Charts
:
在浏览器上打开
https://hub.litmuschaos.io
上的Chaos Charts for Kubernetes
,然后在搜索字段中搜索generic
, 并点击Generic Chaos chart
。点击
Install All Experiments
按钮。复制下载安装链接。
先创建一个测试的命令空间,如
nginx
安装
chaos experiment
:
确认
chaos experiments
状态:
通用混沌图表下提供了混沌实验方案,如Pod
删除,网络延迟,网络丢失和容器销毁。也可以安装或构建自己的特定于应用程序的混沌图以运行特定于应用程序的混沌。
创建 Pod 删除混沌实验
我们将部署一个示例应用程序nginx
,并对该应用程序进行Kubernetes
混沌实验。让我们执行以下步骤来测试pod
删除对集群的影响:
创建
nginx.yaml
并使用kubectl
部署:
确认
Pod
的运行状态:
添加注释,应用程序必须带有注释
litmuschaos.io/chaos="true"
。作为安全措施,以及作为减小爆炸半径的一种方法,chaos operator
会在应用程序上调用混沌实验之前检查此注释。
注意:
Litmus
支持对deployments
,statefulsets
和daemonsets
进行混乱。
设置
Service Account
和rbac
:
查看实验
CRs
和chaos
参数:
运行
Chaos
查看混沌的实验结果
混沌实验是作为Kubernetes作业执行的,受影响的豆荚将由混沌执行者根据实验定义删除。
让我们执行以下步骤来回顾我们的混沌实验的结果:
观看正在进行的实验:
获取结果列表:
查看
nginx-chaos-pod-delete
实验结果:
查看混沌的实验事件
可以查看指定命名空间nginx
下的events
来了解和还原我们的混沌实验:
更多内容
Litmus documentation: https://docs.litmuschaos.io/
Chaos Charts for Kubernetes: https://hub.litmuschaos.io/
Chaoskube project: https://github.com/linki/chaoskube
Pumba project: https://github.com/alexei-led/pumba
版权声明: 本文为 InfoQ 作者【zbyufei】的原创文章。
原文链接:【http://xie.infoq.cn/article/a79f029f0a0f6888fda73bb11】。文章转载请联系作者。
评论