跳至主内容
版本:下一版本

离线安装 Chaos Mesh

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

本文档介绍如何离线安装 Chaos Mesh。

准备工作

在安装 Chaos Mesh 前,请确保离线环境中已安装 Docker 并部署了 Kubernetes 集群。若环境尚未准备就绪,请参考以下文档安装 Docker 和部署 Kubernetes 集群:

准备安装文件

离线安装 Chaos Mesh 前,您需要从可访问外网的机器下载所有 Chaos Mesh 镜像和仓库压缩包,然后将下载的文件复制到离线环境。

指定版本号

在可访问外网的机器上设置 Chaos Mesh 版本号为环境变量:

下载 Chaos Mesh 镜像

在可访问外网的机器上,使用已设置的版本号拉取镜像:

docker pull ghcr.io/chaos-mesh/chaos-mesh:${CHAOS_MESH_VERSION}
docker pull ghcr.io/chaos-mesh/chaos-daemon:${CHAOS_MESH_VERSION}
docker pull ghcr.io/chaos-mesh/chaos-dashboard:${CHAOS_MESH_VERSION}

将镜像保存为 tar 包:

docker save ghcr.io/chaos-mesh/chaos-mesh:${CHAOS_MESH_VERSION} > image-chaos-mesh.tar
docker save ghcr.io/chaos-mesh/chaos-daemon:${CHAOS_MESH_VERSION} > image-chaos-daemon.tar
docker save ghcr.io/chaos-mesh/chaos-dashboard:${CHAOS_MESH_VERSION} > image-chaos-dashboard.tar
备注

若要模拟 DNS 故障(例如使 DNS 响应返回随机错误 IP 地址),您需要额外拉取 pingcap/coredns 镜像。

下载 Chaos Mesh 仓库压缩包

在可访问外网的机器上下载 Chaos Mesh 的 zip 包:

复制文件

下载完所有安装所需文件后,需将这些文件复制到离线环境:

  • image-chaos-mesh.tar

  • image-chaos-daemon.tar

  • image-chaos-dashboard.tar

  • chaos-mesh.zip

安装 Chaos Mesh

将 Chaos Mesh 镜像的 tar 包和仓库的 zip 包复制到离线环境后,请按以下步骤安装 Chaos Mesh。

步骤 1:加载 Chaos Mesh 镜像

从 tar 包加载镜像:

docker load < image-chaos-mesh.tar
docker load < image-chaos-daemon.tar
docker load < image-chaos-dashboard.tar

步骤 2:推送镜像至 Registry

备注

推送镜像至 Registry 前,请确保离线环境中已部署 Registry。若未部署,请参考 Docker Registry 获取部署方法。

设置 Chaos Mesh 版本和 Registry 地址为环境变量:

标记镜像使其指向 Registry:

export CHAOS_MESH_IMAGE=$DOCKER_REGISTRY/chaos-mesh/chaos-mesh:${CHAOS_MESH_VERSION}
export CHAOS_DAEMON_IMAGE=$DOCKER_REGISTRY/chaos-mesh/chaos-daemon:${CHAOS_MESH_VERSION}
export CHAOS_DASHBOARD_IMAGE=$DOCKER_REGISTRY/chaos-mesh/chaos-dashboard:${CHAOS_MESH_VERSION}
docker image tag ghcr.io/chaos-mesh/chaos-mesh:${CHAOS_MESH_VERSION} $CHAOS_MESH_IMAGE
docker image tag ghcr.io/chaos-mesh/chaos-daemon:${CHAOS_MESH_VERSION} $CHAOS_DAEMON_IMAGE
docker image tag ghcr.io/chaos-mesh/chaos-dashboard:${CHAOS_MESH_VERSION} $CHAOS_DASHBOARD_IMAGE

推送镜像至 Registry:

docker push $CHAOS_MESH_IMAGE
docker push $CHAOS_DAEMON_IMAGE
docker push $CHAOS_DASHBOARD_IMAGE

步骤 3:使用 Helm 安装 Chaos Mesh

解压 Chaos Mesh 的 zip 包:

unzip chaos-mesh.zip -d chaos-mesh && cd chaos-mesh
备注

在 Kubernetes v1.15(或更早版本)上安装 Chaos Mesh 时,您需要先使用 kubectl create -f manifests/crd-v1beta1.yaml 手动安装 CRD。有关更多信息,请参见常见问题

创建命名空间:

kubectl create ns chaos-mesh

执行安装命令时,需指定 Chaos Mesh 的命名空间及各组件的镜像值:

helm install chaos-mesh helm/chaos-mesh -n=chaos-mesh --set images.registry=$DOCKER_REGISTRY

验证安装

非官方测试版翻译

本页面由 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 实时查看实验的运行状态。