# From Apt (Debian/Ubuntu) # Members of the Helm community have contributed a Helm package for Apt. This package is generally up to date. curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - sudo apt-get install apt-transport-https --yes echo"deb https://baltocdn.com/helm/stable/debian/ all main" | sudotee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm
$ helm3 version version.BuildInfo{Version:"v3.3.1", GitCommit:"249e5215cde0c3fa72e27eb7a30e8d55c9696144", GitTreeState:"clean", GoVersion:"go1.14.7"}
$ helm version Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"} could not read x509 key pair (cert: "/home/debian/.helm/cert.pem", key: "/home/debian/.helm/key.pem"): can't load key pair from cert /home/debian/.helm/cert.pem and key /home/debian/.helm/key.pem: open /home/debian/.helm/cert.pem: no such file or directory
$ helm3 plugin list NAME VERSION DESCRIPTION 2to3 0.6.0 migrate and cleanup Helm v2 configuration and releases in-place to Helm v3
$ helm3 2to3 Migrate and Cleanup Helm v2 configuration and releases in-place to Helm v3
Usage: 2to3 [command]
Available Commands: cleanup cleanup Helm v2 configuration, release data and Tiller deployment convert migrate Helm v2 release in-place to Helm v3 help Help about any command move migrate Helm v2 configuration in-place to Helm v3
Flags: -h, --helphelpfor 2to3
Use "2to3 [command] --help"for more information about a command.
Flags: --delete-v2-releases v2 release versions are deleted after migration. By default, the v2 release versions are retained --dry-run simulate a command -h, --helphelpfor convert --kube-context string name of the kubeconfig context to use --kubeconfig string path to the kubeconfig file -l, --label string label to select Tiller resources by (default "OWNER=TILLER") -s, --release-storage string v2 release storage type/object. It can be 'secrets' or 'configmaps'. This is only used with the 'tiller-out-cluster' flag (default "secrets") --release-versions-max int limit the maximum number of versions converted per release. Use 0 for no limit (default 10) -t, --tiller-ns string namespace of Tiller (default "kube-system") --tiller-out-cluster when Tiller is not running in the cluster e.g. Tillerless
helm2 中已经存在的 release
1 2 3 4 5 6 7
$ helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE gitlab-runner 2 Thu Aug 20 19:51:54 2020 DEPLOYED gitlab-runner-0.13.1 12.7.1 frontend gitlab-runner-moqi-id 1 Fri Aug 21 00:27:28 2020 DEPLOYED gitlab-runner-0.13.1 12.7.1 frontend gitlab-runner-moqi-id-website 2 Fri Aug 21 19:18:24 2020 DEPLOYED gitlab-runner-0.13.1 12.7.1 frontend moqi-id-docs 1 Fri Aug 21 20:45:53 2020 DEPLOYED gitlab-runner-0.13.1 12.7.1 frontend moqi-id-website 1 Fri Aug 21 19:31:06 2020 DEPLOYED gitlab-runner-0.13.1 12.7.1 frontend
helm3 中已经存在的 release
1 2
$ helm3 list -A NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
选一个用 --dry-run 试下效果:
1 2 3 4 5 6 7 8
$ helm3 2to3 convert gitlab-runner --dry-run 2020/09/10 14:03:48 NOTE: This is in dry-run mode, the following actions will not be executed. 2020/09/10 14:03:48 Run without --dry-run to take the actions described below: 2020/09/10 14:03:48 2020/09/10 14:03:48 Release "gitlab-runner" will be converted from Helm v2 to Helm v3. 2020/09/10 14:03:48 [Helm 3] Release "gitlab-runner" will be created. 2020/09/10 14:03:48 [Helm 3] ReleaseVersion "gitlab-runner.v1" will be created. 2020/09/10 14:03:48 [Helm 3] ReleaseVersion "gitlab-runner.v2" will be created.
没有报错,去掉 --dry-run 执行迁移:
1 2 3 4 5 6 7 8 9 10 11
$ helm3 2to3 convert gitlab-runner 2020/09/10 14:10:31 Release "gitlab-runner" will be converted from Helm v2 to Helm v3. 2020/09/10 14:10:31 [Helm 3] Release "gitlab-runner" will be created. 2020/09/10 14:10:32 [Helm 3] ReleaseVersion "gitlab-runner.v1" will be created. 2020/09/10 14:10:32 [Helm 3] ReleaseVersion "gitlab-runner.v1" created. 2020/09/10 14:10:32 [Helm 3] ReleaseVersion "gitlab-runner.v2" will be created. 2020/09/10 14:10:32 [Helm 3] ReleaseVersion "gitlab-runner.v2" created. 2020/09/10 14:10:32 [Helm 3] Release "gitlab-runner" created. 2020/09/10 14:10:32 Release "gitlab-runner" was converted successfully from Helm v2 to Helm v3. 2020/09/10 14:10:32 Note: The v2 release information still remains and should be removed to avoid conflicts with the migrated v3 release. 2020/09/10 14:10:32 v2 release information should only be removed using `helm 2to3` cleanup and when all releases have been migrated over.
迁移之后,查看迁移结果:
1 2 3
$ helm3 list -A NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION gitlab-runner frontend 2 2020-08-20 11:51:54.75041113 +0000 UTC deployed gitlab-runner-0.13.1 12.7.1
清理 Helm V2 相关数据
官方文档表示,该步骤不是必须的,但却是强烈推荐的。
helm-2to3 提供了清理的命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$ helm3 2to3 cleanup -h cleanup Helm v2 configuration, release data and Tiller deployment
Usage: 2to3 cleanup [flags]
Flags: --config-cleanup if set, configuration cleanup performed --dry-run simulate a command -h, --help help for cleanup -l, --label string label to select Tiller resources by (default "OWNER=TILLER") --release-cleanup if set, release data cleanup performed -s, --release-storage string v2 release storage type/object. It can be 'secrets' or 'configmaps'. This is only used with the 'tiller-out-cluster' flag (default "secrets") --tiller-cleanup if set, Tiller cleanup performed -t, --tiller-ns string namespace of Tiller (default "kube-system") --tiller-out-cluster when Tiller is not running in the cluster e.g. Tillerless
$ helm3 2to3 cleanup --dry-run 2020/09/10 14:50:57 NOTE: This is in dry-run mode, the following actions will not be executed. 2020/09/10 14:50:57 Run without --dry-run to take the actions described below: 2020/09/10 14:50:57 WARNING: "Helm v2 Configuration" "Release Data" "Tiller" will be removed. This will clean up all releases managed by Helm v2. It will not be possible to restore them if you haven't made a backup of the releases. Helm v2 may not be usable afterwards.
[Cleanup/confirm] Are you sure you want to cleanup Helm v2 data? [y/N]: y 2020/09/10 14:51:17 Helm v2 data will be cleaned up. 2020/09/10 14:51:17 [Helm 2] Releases will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "moqi-id-website.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "gitlab-runner.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "hello-world.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "moqi-id-docs.v1" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "gitlab-runner.v2" will be deleted. 2020/09/10 14:51:18 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v2" will be deleted. 2020/09/10 14:51:18 [Helm 2] Tiller in "kube-system" namespace will be removed. 2020/09/10 14:51:18 [Helm 2] Home folder "/home/debian/.helm" will be deleted.
$ helm3 2to3 cleanup WARNING: "Helm v2 Configuration" "Release Data" "Tiller" will be removed. This will clean up all releases managed by Helm v2. It will not be possible to restore them if you haven't made a backup of the releases. Helm v2 may not be usable afterwards.
[Cleanup/confirm] Are you sure you want to cleanup Helm v2 data? [y/N]: y 2020/09/10 14:54:59 Helm v2 data will be cleaned up. 2020/09/10 14:54:59 [Helm 2] Releases will be deleted. 2020/09/10 14:55:00 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v1" will be deleted. 2020/09/10 14:55:00 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v1" deleted. 2020/09/10 14:55:00 [Helm 2] ReleaseVersion "moqi-id-website.v1" will be deleted. 2020/09/10 14:55:01 [Helm 2] ReleaseVersion "moqi-id-website.v1" deleted. 2020/09/10 14:55:01 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id.v1" will be deleted. 2020/09/10 14:55:01 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id.v1" deleted. 2020/09/10 14:55:01 [Helm 2] ReleaseVersion "gitlab-runner.v1" will be deleted. 2020/09/10 14:55:02 [Helm 2] ReleaseVersion "gitlab-runner.v1" deleted. 2020/09/10 14:55:02 [Helm 2] ReleaseVersion "hello-world.v1" will be deleted. 2020/09/10 14:55:02 [Helm 2] ReleaseVersion "hello-world.v1" deleted. 2020/09/10 14:55:02 [Helm 2] ReleaseVersion "moqi-id-docs.v1" will be deleted. 2020/09/10 14:55:03 [Helm 2] ReleaseVersion "moqi-id-docs.v1" deleted. 2020/09/10 14:55:03 [Helm 2] ReleaseVersion "gitlab-runner.v2" will be deleted. 2020/09/10 14:55:03 [Helm 2] ReleaseVersion "gitlab-runner.v2" deleted. 2020/09/10 14:55:03 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v2" will be deleted. 2020/09/10 14:55:04 [Helm 2] ReleaseVersion "gitlab-runner-moqi-id-website.v2" deleted. 2020/09/10 14:55:04 [Helm 2] Releases deleted. 2020/09/10 14:55:04 [Helm 2] Tiller in "kube-system" namespace will be removed. 2020/09/10 14:55:04 [Helm 2] Tiller "deploy" in "kube-system" namespace will be removed. 2020/09/10 14:55:05 [Helm 2] Tiller "deploy" in "kube-system" namespace was removed successfully. 2020/09/10 14:55:05 [Helm 2] Tiller "service" in "kube-system" namespace will be removed. 2020/09/10 14:55:06 [Helm 2] Tiller "service" in "kube-system" namespace was removed successfully. 2020/09/10 14:55:06 [Helm 2] Tiller in "kube-system" namespace was removed. 2020/09/10 14:55:06 [Helm 2] Home folder "/home/debian/.helm" will be deleted. 2020/09/10 14:55:06 [Helm 2] Home folder "/home/debian/.helm" deleted. 2020/09/10 14:55:06 Helm v2 data was cleaned up successfully.