跳到主要内容

前提条件

检查权限

故障注入需要 local code 权限,请确保访问密钥已被授予 local code 权限。

前往 IAM,点击用户 -> 用户名 -> 创建访问密钥,然后选择本地代码

Create access key

备注

在创建新的访问密钥后,需要重新设置 aws configure

部署 Chaos Mesh

KubeBlocks 支持通过 Helm 或 kbcli 部署 Chaos Mesh。

这里使用 ChaosMesh v2.5.2,并启用 DNS 服务器进行 DNS 故障注入。

执行以下命令,在 Containerd 中安装 ChaosMesh:

kbcli addon enable fault-chaos-mesh

执行以下命令,在 k3d/k3s 中安装 ChaosMesh:

kbcli addon enable fault-chaos-mesh --set dnsServer.create=true --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/k3s/containerd/containerd.sock

如果设置了污点(taints),可以使用以下命令设置容忍度(tolerations):

# 默认情况下,ChaosMesh 遵循 KubeBlocks 的容忍度
# 你可以根据需要为 fault-chaos-mesh 的四个组件(controllerManager、chaosDaemon、dashboard 和 dnsServer)指定容忍度。
# 一旦为某个组件指定了容忍度,所有组件的默认容忍度都将失效。建议要么为四个组件都指定容忍度,要么都不指定。
kbcli addon enable fault-chaos-mesh \
--tolerations '[{"key":"kb-controller","operator":"Equal","effect":"NoSchedule","value":"true"}]' \
--tolerations 'chaosDaemon:[{"key":"kb-controller","operator":"Equal","effect":"NoSchedule","value":"true"},{"key":"kb-data","operator":"Equal","effect":"NoSchedule","value":"true"}]' \
--tolerations 'dashboard:[{"key":"kb-controller","operator":"Equal","effect":"NoSchedule","value":"true"}]' \
--tolerations 'dnsServer:[{"key":"kb-controller","operator":"Equal","effect":"NoSchedule","value":"true"}]'