从 Helm 2 迁移到 Helm 3
本文以将 TiDB Operator 由 Helm 2 管理迁移到由 Helm 3 进行管理为例,介绍如何将由 Helm 2 管理的组件迁移到由 Helm 3 管理。其他如 TiDB Lightning 等由 Helm 2 管理的 release 可使用类似的步骤进行迁移。
更多有关如何将 Helm 2 管理的 release 迁移到 Helm 3 的信息,可参考 Helm 官方文档。
迁移步骤
假设原来由 Helm 2 管理的 TiDB Operator 安装在 tidb-admin
namespace 下,名称为 tidb-operator
。同时在 tidb-cluster
namespace 下部署了名为 basic
的 TidbCluster 及名为 basic
的 TidbMonitor。
helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
tidb-operator 1 Tue Jan 5 15:28:00 2021 DEPLOYED tidb-operator-v1.1.8 v1.1.8 tidb-admin
参考 Helm 官方文档安装 Helm 3。
Helm 3 使用与 Helm 2 不同的配置与数据存储方式,因此在安装 Helm 3 的过程中无需担心对原有配置或数据的覆盖。
为 Helm 3 安装 helm-2to3 插件。
helm3 plugin install https://github.com/helm/helm-2to3通过如下命令可确认是否已正确安装 helm-2to3 插件。
helm3 plugin listNAME VERSION DESCRIPTION 2to3 0.8.0 migrate and cleanup Helm v2 configuration and releases in-place to Helm v3迁移 Helm 2 的仓库、插件等配置到 Helm 3。
helm3 2to3 move config在正式迁移配置前,可使用
helm3 2to3 move config --dry-run
了解可能执行的操作及其影响。迁移配置完成后,可看到 Helm 3 中已包含 PingCAP 仓库。
helm3 repo listNAME URL pingcap https://charts.pingcap.org/迁移 Helm 2 管理的 release 到 Helm 3。
helm3 2to3 convert tidb-operator在正式迁移 release 前,可使用
helm3 2to3 convert tidb-operator --dry-run
了解可能执行的操作及其影响。迁移 release 完成后,可通过 Helm 3 看到 TiDB Operator 对应的 release。
helm3 list --namespace=tidb-adminNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION tidb-operator tidb-admin 1 2021-01-05 07:28:00.3545941 +0000 UTC deployed tidb-operator-v1.1.8 v1.1.8确认 TiDB Operator、TidbCluster 及 TidbMonitor 运行正常。
使用以下命令检查 TiDB Operator 组件是否运行正常:
kubectl get pods --namespace=tidb-admin -l app.kubernetes.io/instance=tidb-operator期望输出为所有 Pod 都处于 Running 状态:
NAME READY STATUS RESTARTS AGE tidb-controller-manager-6d8d5c6d64-b8lv4 1/1 Running 0 2m22s tidb-scheduler-644d59b46f-4f6sb 2/2 Running 0 2m22s使用以下命令检查 TidbCluster 和 TidbMonitor 组件是否运行正常:
watch kubectl get pods --namespace=tidb-cluster期望输出为所有 Pod 都处于 Running 状态:
NAME READY STATUS RESTARTS AGE basic-discovery-6bb656bfd-xl5pb 1/1 Running 0 9m9s basic-monitor-5fc8589c89-gvgjj 3/3 Running 0 8m58s basic-pd-0 1/1 Running 0 9m8s basic-tidb-0 2/2 Running 0 7m14s basic-tikv-0 1/1 Running 0 8m13s清理 Helm 2 对应的配置、release 信息等数据。
helm3 2to3 cleanup --name=tidb-operator在正式清理数据前,可使用
helm3 2to3 cleanup --name=tidb-operator --dry-run
了解可能执行的操作及其影响。