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

卸载 Chaos Mesh

非官方测试版翻译

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

本文介绍如何卸载 Chaos Mesh,包括使用 Helm 卸载和手动卸载两种方式。当需要彻底清理 Kubernetes 集群中的 Chaos Mesh 安装时,手动清除也非常必要。

使用 Helm 卸载 Chaos Mesh

步骤 1:清理混沌实验

卸载 Chaos Mesh 前,请确保所有混沌实验均已删除。可通过以下命令查看混沌相关对象:

for i in $(kubectl api-resources | grep chaos-mesh | awk '{print $1}'); do kubectl get $i -A; done

确认所有混沌实验删除后,即可卸载 Chaos Mesh。

步骤 2:列出 Helm Release

执行以下命令查看已安装的 Helm Release:

helm list -A

输出示例如下:

NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
chaos-mesh-playground chaos-mesh 1 2021-12-01 22:58:18.037052401 +0800 CST deployed chaos-mesh-2.1.0 2.1.0

这表明 Chaos Mesh 在命名空间 chaos-mesh 中以 Helm Release 名称 chaos-mesh-playground 安装。此即需卸载的目标 Release。

步骤 3:删除 Helm Release

确定目标 Helm Release 后,执行以下命令删除:

helm uninstall chaos-mesh-playground -n chaos-mesh

步骤 4:移除 CRD

helm uninstall 不会移除 CRD,需手动执行以下命令清理:

kubectl delete crd $(kubectl get crd | grep 'chaos-mesh.org' | awk '{print $1}')

手动卸载 Chaos Mesh

若您通过脚本 install.sh 安装 Chaos Mesh,或在安装后修改过配置组件,或卸载时遇到问题,可参考以下步骤手动卸载。

步骤 1:清理混沌实验

卸载 Chaos Mesh 前,请确保所有混沌实验均已删除。可通过以下命令查看混沌相关对象:

for i in $(kubectl api-resources | grep chaos-mesh | awk '{print $1}'); do kubectl get $i -A; done

确认所有混沌实验删除后,即可卸载 Chaos Mesh。

步骤 2:移除 Chaos Mesh 工作负载

Chaos Mesh 安装后通常包含以下组件:

  • 名为 chaos-controller-managerDeployment,作为 Chaos Mesh 的控制器/协调器

  • 名为 chaos-daemonDaemonSet,作为各 Kubernetes 工作节点上的代理

  • 名为 chaos-dashboardDeployment,提供 Web UI

  • 名为 chaos-dns-serverDeployment(仅当启用 DNSChaos 功能时存在),作为 DNS 代理服务器

请移除这些工作负载对象。

随后删除其对应 Service

  • chaos-daemon

  • chaos-dashboard

  • chaos-mesh-controller-manager

  • chaos-mesh-dns-server

步骤 3:移除 Chaos Mesh RBAC 对象

Chaos Mesh 安装后包含以下 RBAC 对象:

  • ClusterRoleBinding

    • chaos-mesh-playground-chaos-controller-manager-cluster-level
    • chaos-mesh-playground-chaos-controller-manager-target-namespace
    • chaos-mesh-playground-chaos-dns-server-cluster-level
    • chaos-mesh-playground-chaos-dns-server-target-namespace
  • ClusterRole

    • chaos-mesh-playground-chaos-controller-manager-cluster-level
    • chaos-mesh-playground-chaos-controller-manager-target-namespace
    • chaos-mesh-playground-chaos-dns-server
    • chaos-mesh-playground-chaos-dns-server-cluster-level
  • RoleBinding

    • chaos-mesh-playground-chaos-controller-manager-control-plane
    • chaos-mesh-playground-chaos-dns-server-control-plane
  • 角色

    • chaos-mesh-playground-chaos-controller-manager-control-plane
    • chaos-mesh-playground-chaos-dns-server-control-plane
  • 服务账户

    • chaos-controller-manager
    • chaos-daemon
    • chaos-dns-server

请删除这些 RBAC 对象。

步骤 4:删除配置映射和密钥

安装 Chaos Mesh 时会创建以下配置映射和密钥对象:

  • 配置映射

    • chaos-mesh
    • dns-server-config
  • 密钥

    • chaos-mesh-webhook-certs

请删除这些配置映射和密钥对象。

步骤 5:删除 Webhook

安装 Chaos Mesh 时会创建以下 Webhook 配置:

  • ValidatingWebhookConfigurations

    • chaos-mesh-validation
    • chaos-mesh-validate-auth
  • MutatingWebhookConfigurations

    • chaos-mesh-mutation

请删除这些 Webhook 配置。

步骤 6:删除 CRD

最后,您可以通过执行以下命令来删除 CRD:

kubectl delete crd $(kubectl get crd | grep 'chaos-mesh.org' | awk '{print $1}')