使用 Helm 安装 Chaos Mesh
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
本文档介绍如何在生产环境中安装 Chaos Mesh。
准备工作
安装 Chaos Mesh 前,请确保环境中已安装 Helm。
执行以下命令检查 Helm 是否安装:
helm version
预期输出如下:
version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"dirty", GoVersion: "go1.16.3"}
若实际输出包含 Version、GitCommit、GitTreeState 和 GoVersion 字段且与预期输出相似,则表明 Helm 已成功安装。
本文档命令均使用 Helm v3 操作 Chaos Mesh。若环境中使用 Helm v2,请参考 Helm v2 迁移至 v3 或调整命令为 Helm v2 格式。
使用 Helm 安装 Chaos Mesh
步骤 1:添加 Chaos Mesh 仓库
将 Chaos Mesh 仓库添加至 Helm 仓库:
helm repo add chaos-mesh https://charts.chaos-mesh.org
步骤 2:查看可安装的 Chaos Mesh 版本
执行以下命令查看可安装的 charts:
helm search repo chaos-mesh
上述命令仅输出 chart 的最新版本。如需安装历史版本,请执行以下命令查看所有已发布版本:
helm search repo chaos-mesh -l
完成上述命令后,即可开始安装 Chaos Mesh。
步骤 3:创建安装命名空间
建议在 chaos-mesh 命名空间下安装,也可指定任意命名空间:
kubectl create ns chaos-mesh
步骤 4:在不同环境中安装
在 Kubernetes v1.15(或更早版本)上安装 Chaos Mesh 时,需要手动安装 CRD。有关详细信息,请参阅常见问题。
因不同容器运行时的守护进程监听不同 socket 路径,安装时需设置对应参数。请根据环境执行以下安装命令:
- Docker
- Containerd
- K3s
- MicroK8s
- CRI-O
安装特定版本 Chaos Mesh 时,请在 helm install 后添加 --version x.y.z 参数。例如:helm install chaos-mesh chaos-mesh/chaos-mesh -n=chaos-mesh --version 2.1.0
Chaos Mesh 默认开启 leader-election 功能以确保高可用。如无需此功能,可通过 --set controllerManager.leaderElection.enabled=false 手动禁用。
若版本号
<2.6.1,仍需设置--set controllerManager.replicaCount=1将控制器副本数缩减为 1。
验证安装
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
要检查 Chaos Mesh 的运行状态,请执行以下命令:
kubectl get pods -n chaos-mesh -l app.kubernetes.io/instance=chaos-mesh
预期输出如下:
NAME READY STATUS RESTARTS AGE
chaos-controller-manager-7b8c86cc9-44dzf 1/1 Running 0 17m
chaos-controller-manager-7b8c86cc9-mxw99 1/1 Running 0 17m
chaos-controller-manager-7b8c86cc9-xmc5v 1/1 Running 0 17m
chaos-daemon-sg2k2 1/1 Running 0 17m
chaos-dashboard-b9dbc6b68-hln25 1/1 Running 0 17m
chaos-dns-server-546675d89d-qkjqq 1/1 Running 0 17m
如果实际输出与预期输出相似,则表明 Chaos Mesh 已成功安装。
如果实际输出的 STATUS 不是 Running,请执行以下命令检查 Pod 详情,并根据错误信息排查问题。
# Take the chaos-controller as an example
kubectl describe po -n chaos-mesh chaos-controller-manager-7b8c86cc9-44dzf
如果 leader election 已关闭,chaos-controller-manager 应仅有一个副本。
NAME READY STATUS RESTARTS AGE
chaos-controller-manager-676d8567c7-ndr5j 1/1 Running 0 24m
chaos-daemon-6l55b 1/1 Running 0 24m
chaos-dashboard-b9dbc6b68-hln25 1/1 Running 0 44m
chaos-dns-server-546675d89d-qkjqq 1/1 Running 0 44m
运行混沌实验
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
确认安装完成后,您可以运行混沌实验来体验 Chaos Mesh 的各项功能。
具体实验操作方法请参考运行混沌实验文档。实验成功创建后,您可通过 Chaos Dashboard 实时查看实验的运行状态。
升级 Chaos Mesh
执行以下命令升级 Chaos Mesh:
helm upgrade chaos-mesh chaos-mesh/chaos-mesh
升级至特定版本时,请在 helm upgrade 后添加 --version x.y.z 参数。例如:helm upgrade chaos-mesh chaos-mesh/chaos-mesh -n=chaos-mesh --version 2.1.0
若在非 Docker 环境中升级了 Chaos Mesh,需按步骤 4:在不同环境中安装添加对应参数。
要修改配置,请根据需求设置不同的值。例如,执行以下命令升级并卸载 chaos-dashboard:
有关更多配置项及其用法,请参考完整配置值列表。
当前 Helm 升级过程中不会自动应用最新的 CustomResourceDefinition (CRD),这可能导致错误。为避免此问题,请手动应用最新 CRD:
卸载 Chaos Mesh
要卸载 Chaos Mesh,请执行以下命令:
helm uninstall chaos-mesh -n chaos-mesh
常见问题
如何安装最新版本的 Chaos Mesh?
helm/chaos-mesh/values.yaml 文件定义了最新版本(master 分支)的镜像。要安装最新版 Chaos Mesh,请执行以下命令:
# Clone repository
git clone https://github.com/chaos-mesh/chaos-mesh.git
cd chaos-mesh
helm install chaos-mesh helm/chaos-mesh -n=chaos-mesh
如何禁用安全模式?
安全模式允许禁用 Chaos Mesh 仪表盘的认证功能,仅适用于非生产环境部署。安全模式默认启用。如需禁用,请在安装或升级时指定 dashboard.securityMode 为 false:
如何持久化 Chaos Dashboard 数据
Chaos Dashboard 默认使用 SQLite 作为数据库引擎。若禁用 PV(持久卷),重启后仪表盘数据将丢失。为避免数据丢失,请参考持久化 Chaos Dashboard 数据文档,为仪表盘启用 PV 或改用 MySQL/PostgreSQL 作为数据库引擎。