混沌工程 Chaos Mesh 实践经验(持续更新)

使用

k8s

JVM故障

Linux内核版本

Linux 系统内核必须为 4.1 及以上版本。

不然会一直失败,可以从Chaos Mesh dashboard前端看到。

对native方法注入故障无效
实测对Thread.sleep(Long) 注入故障无效,猜测是因为对native方法无效,大概因为是由其它语言实现?

定义抛出异常的格式

抛出的自定义异常,例如:‘java.io.IOException(“BOOM”)’

格式看起来相当于Java new后面的部分。
注意即使没有参数也要有括号,否则Chaos Mesh dashboard前端看起来正常,实际不会生效,从k8s pod的日志能看到错误。

开发

总体上按官方文档即可。

Chaos Mesh dashboard前端
虽然make也会生成dashboard的镜像,但UI=1 make 才实际构建前端。

安装时设置tag和容器运行时
参考helm安装和离线安装。
可以设置镜像tag选择对应的ChaosMesh版本。
因为ChaosMesh需要指定容器运行时,helm/chaos-mesh默认的容器运行时是Docker,其它容器运行时需要特别指定。
比如安装tag为$YOUR_DOCKER_IMAGE_TAG 的镜像,k8s容器运行时为containerd:
helm install chaos-mesh helm/chaos-mesh -n=chaos-mesh --set images.registry=$DOCKER_REGISTRY --set images.tag=$YOUR_DOCKER_IMAGE_TAG --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock

你可能感兴趣的:(混沌工程,java,kubernetes,Chaos,Mesh,混沌工程)