混沌测试平台 Chaos Mesh

Chaos Mesh 是PingCap团队研发的一款用于测试kubernetes环境的工具。通过人为地在集群中注入故障来检测集群对故障的处理以及恢复能力。更详细信息可以查看这篇文章。混沌测试与针对某个应用测试的区别为:前者更倾向于在现有大规模集群中进行测试,影响因素可能来自集群中的方方面面;而后者更专注于对应用本身功能的测试。

GitHub上目前有两款star数高的混沌项目,litmuschaos-mesh,这两款的功能和场景都基本类似,前者目前提供的混沌注入功能比较多,但后者提供了简单的UI界面。两者都可以扩展自定义的场景。

下面以chaos-mesh为例简单看下其提供的功能。

minikube下的安装可以参见官方文档

在安装完后可以看到如下pod,一个controller,一个daemonset以及一个dashboard

# kubectl get pod -n chaos-testing
NAME READY STATUS RESTARTS AGE
chaos-controller-manager-fd568948-hl8wv 1/1 Running 0 59m
chaos-daemon-5zfzh 1/1 Running 0 59m
chaos-dashboard-6d8466f445-2k8sl 1/1 Running 0 59m

dashboard示意图如下:

目前支持的混沌测试如下:

# kubectl get crd
NAME CREATED AT
iochaos.chaos-mesh.org 2020-07-29T08:18:55Z
kernelchaos.chaos-mesh.org 2020-07-29T08:18:55Z
networkchaos.chaos-mesh.org 2020-07-29T08:18:55Z
podchaos.chaos-mesh.org 2020-07-29T08:18:55Z
stresschaos.chaos-mesh.org 2020-07-29T08:18:55Z
timechaos.chaos-mesh.org 2020-07-29T08:18:55Z

其原理也比较简单,类似istio的网格方式,通过admission webhook给pod注入sidecar,然后通过该sidecar进行故障注入。其支持的webhook如下:

# kubectl get MutatingWebhookConfiguration chaos-mesh-sidecar-injector
NAME WEBHOOKS AGE
chaos-mesh-sidecar-injector 7 61m
# kubectl get ValidatingWebhookConfiguration
NAME WEBHOOKS AGE
chaos-mesh-validation 6 61m

使用起来也比较简单,以pod-failure类型的故障为例,主要创建一个PodChaos的crd对象,并将selector设置为pod的标签即可。

apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
name: pod-failure-example
namespace: chaos-testing
spec:
action: pod-failure # the specific chaos action to inject; supported actions: pod-kill/pod-failure
mode: one # the mode to run chaos action; supported modes are one/all/fixed/fixed-percent/random-max-percent
duration: "60s" # duration for the injected chaos experiment
selector: # pods where to inject chaos actions
labelSelectors:
"app.kubernetes.io/component": "tikv" # the label of the pod for chaos injection
scheduler: # scheduler rules for the running time of the chaos experiments about pods.
cron: "@every 5m"

总体来说,混沌测试更像是集成验证的一部分,通过在现有运行环境中注入故障来发现系统或应用的兼容性问题,故障恢复能力问题等。典型的一个场景可以参考PingCap官方提供的Chaos Mesh 能做些什么?

混沌测试平台 Chaos Mesh的更多相关文章

  1. 技术分享 | 在GreatDB分布式部署模式中使用Chaos Mesh做混沌测试

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 需求背景与万里安全数据库软件GreatDB分布式部署模式介绍 1.1 需求背景 混沌测试是检测分布式系统不确定性.建 ...

  2. 微软官方网站线上兼容测试平台-Browser screenshots

    前端开发时最不想做的就是在不同浏览器.平台和分辨率测试网页显示效果,通常这会浮现许多问题,尤其浏览器版本就可能让显示成效完全不同,也只好尽力维持让每一种设备都能正常浏览网页.修改到完全没有问题必须投入 ...

  3. Optimizely:在线网站A/B测试平台

    Optimizely:在线网站A/B测试平台是一家提供 A/B 测试服务的公司.A/B 测试能够对比不同版本的设计,选取更吸引用户眼球的那一款,从而带来更为优化的个人体验.让网站所有者易于对不同版本的 ...

  4. Testin云测试平台初体验

    这几天偶然接触到了一个叫做Testin的云测试平台,经过一番体验,感觉还是不错的,因为里面提供了大量的测试机型,可以针对Android手机的严重碎片化现象做出比较全面的测试,同时Testin的测试内容 ...

  5. SQL注入测试平台 SQLol -1. 简介与安装

    最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...

  6. 一个基于集成jenkins的测试平台

    (一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...

  7. 支撑Pinterest日均1000+次试验的A/B测试平台揭秘

    编者按:本文详细介绍了 Pinterest 内部A/B测试平台的搭建过程,对于无论是有技术能力和资源想要自建A/B测试系统的大公司,还是想在业务中引入第三方A/B测试方法和工具的中小公司都极具参考意义 ...

  8. 各种Web漏洞测试平台

    Sqli Lab​支持报错注入.二次注入.盲注.Update注入.Insert注入.Http头部注入.二次注入练习等.支持GET和POST两种方式. https://github.com/Audi-1 ...

  9. 移动APP云测试平台测评分析

    随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.有专家预测,2017年的App应用下载量将会突破2500亿,整个移动科技市场规模将会达到770亿美元.身处在这个"移动&quo ...

  10. [转] Optimizely:在线网站A/B测试平台

    Optimizely:在线网站A/B测试平台是一家提供 A/B 测试服务的公司.A/B 测试能够对比不同版本的设计,选取更吸引用户眼球的那一款,从而带来更为优化的个人体验.让网站所有者易于对不同版本的 ...

随机推荐

  1. GaussDB(for Influx)与开源企业版性能对比

    摘要:相比于企业版InfluxDB,GaussDB(for Influx)能为客户提供更高的写入能力.更稳定的查询能力.更高的数据压缩率,高效满足各大时序应用场景需求. 本文分享自华为云社区<华 ...

  2. ReactJS到React-Native,架构原理概述

    React是一个纯JS的UI库,只能干HTML/CSS/JS 提供的Web服务(新的H5 API不一定支持), React-Native厉害在于它能打通JS和Native Code, 让JS能够调用丰 ...

  3. DarkMode(2):深色模式解决方案——css颜色变量实现Dark Mode

    暗黑模式实现,最初的设计,就是参考之前的主题模式.所谓多套主题/配色/皮肤,就是我们很常见的换肤功能.换肤简单的实现就是更换 css实现不同样式呈现不同肤色. 之前做不同颜色的皮肤,暗黑模式可以单做其 ...

  4. hadoop清空回收站时间设置

    在hadoop执行删除文件命令 如果不带 -skipTrash 文件是进入了回收站 空间并不会被释放 会隔一段时间才被删除 设置该时间位置为: core-site.xml fs.trash.inter ...

  5. 火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!

      近日,火山引擎大数据研发治理套件 DataLeap 通过中国信通院第十五批"可信大数据"测评,在数据管理平台基础能力上获得认证.   "可信大数据"产品能力 ...

  6. 【Logging 日志库】Cpp 日志库 boost::log 以及 glog 的对比

    日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.本文将从设计上和功能上对比 C++ 语言常见的两款日志库: boost::log 和 google-glog . 设计 b ...

  7. 「Codeforces 1131D」Gourmet Choice

    Description 美食家 Apple 先生是一家美食杂志的主编.他会用一个正整数来评价每一道菜. 美食家在第一天品尝第 $n$ 道菜,第二天品尝了 $m$ 道菜.他制作了一张 $n\times ...

  8. vivo 悟空活动中台 - H5 活动加载优化

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/6gtVR0nVNcZvREjwftZgzA作者:悟空中台研发团队 [悟空活动中台]系列往期精 ...

  9. 一篇文章教你从入门到精通 Google 指纹验证功能

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EHomjBy4Tvm8u962J6ZgsA作者:Sun Daxiang Google 从 An ...

  10. shardingsphere 5.1.1 分库分表

    1. mysql配置: application-dubboService = spring-csc-campaign-agent-context.xml kafka.topics.redisAcces ...