跳到主要内容
版本:2.7.2

升级至 Chaos Mesh 2.0

警告

由于 Chaos Mesh 2.0 已发布许久,我们已停止在每个版本发布时上传迁移文件。

最后一次上传是在 v2.7.2 版本。

本文介绍从 Chaos Mesh 1.x 升级至 2.0 的详细步骤。Chaos Mesh 2.0 引入了一些新功能,并修复了许多问题。Chaos Mesh 2.0 重构了一部分代码,因此需要做一些额外的操作从 Chaos Mesh 1.x 升级到 2.0。

升级工具

CRD 在 Chaos Mesh 2.0 中发生了变化,旧版本实验的 YAML 文件无法在 Chaos Mesh 2.0 上运行。如果希望继续使用旧版本实验的 YAML 文件,则需要导出并升级这些文件,并在 Chaos Mesh 升级后重新导入。

为了简化升级过程,Chaos Mesh 2.0 提供了以下升级工具:

  • migrate.sh:用于自动导出并升级实验 YAML 文件、升级 CRD、导入升级后的 YAML 文件。
  • schedule-migration:用于将指定的旧版 YAML 文件更新为新版 YAML 文件。

要获取升级工具,建议将 Chaos Mesh 项目克隆至本地执行 make schedule-migration.tar.gz,或是从 https://mirrors.chaos-mesh.org/v2.0.0/schedule-migration.tar.gz 下载。使用以下命令将其解压,即可得到上述两个工具:

tar xvf ./schedule-migration.tar.gz

该压缩包打包的 schedule-migration 工具仅适用于 Linux x86_64 平台,其他操作系统 / 架构的用户需要自行编译。

第 1 步:导出并升级实验

你可以使用升级工具 migrate.sh 自动导出并升级实验。在运行之前,请确保当前用户有足够的权限访问集群。

假设 migrate.sh 位于当前目录下,并且 schedule-migration 工具也置于该目录下,请执行以下命令导出并升级实验:

bash migrate.sh -e

在当前目录下生成了许多 YAML 文件,这些就是被导出的实验文件。导出的实验文件已经被自动升级。

此外,你也可以使用 schedule-migration 工具只升级指定的旧版 YAML 文件,请运行以下命令:

./schedule-migration <path-to-old-yaml> <path-to-new-yaml>

在你指定的 YAML 文件路径,就可以获取升级后的新版 YAML 文件。在删除旧资源后重新应用新 YAML 文件即可完成更新。

第 2 步:升级 CRD

当使用 Helm 升级 Chaos Mesh 前,为了能最大程度保证升级成功,请运行以下命令手动升级 CRD:

bash migrate.sh -c

即可看到 CRD 被删除后重新添加。

第 3 步:升级 Chaos Mesh

由于 2.0 的改动较大,推荐在卸载 1.x 后重新进行安装。具体安装步骤,请参考使用 Helm 安装(生产推荐)

第 4 步:导入实验

Chaos Mesh 2.0 对实验定义进行了一些修改,需要升级旧版实验文件后才能继续使用。

在导出的实验文件的同一目录下,请运行以下命令导入实验:

bash migrate.sh -i

问题反馈

如果在升级过程中遇到任何问题,请将命令行输出提交至 slack 或在 Github 上新建一个 issue。感谢你的反馈,Chaos Mesh 团队很乐意帮助解决。