最近使用 helm 的时候遇到了些问题,本着“遇到bug先升级最新版本”的原则,准备升级 helm 和 tiller。其实升级本来不麻烦,但是因为服务器在国内受到 GFW 的影响,所以变得麻烦了,在此记录一下折腾的过程。

升级 helm

首先来到 Releases 页面,查看最新的版本。因为下载链接来自 googleapis.com 被墙了,然后下载到本地再通过 SFTP 等方式上传到服务器。

然后我们在服务器上使用tar -zxvf helm-v2.0.0-linux-amd64.tgz 命令解压。将解压出来的 helm 二进制文件替换原来的 helm,你可以使用 which helm 来找到 helm 的位置。

根据官方说法,我们这里使用 helm init --upgrade 升级 tiller。然而这样操作之后使用的是 gcr.io 的镜像,不出意外这个网站也被墙了,所以我们需要曲线救国一下,先在本地下载,然后上传到 registry 再下载使用。

创建 tiller 镜像

我们先在本地使用 docker pull 拉取镜像。为了将其 push 到我们的 registry(我这里使用的是腾讯云的 registry),我们需要再给拉下来的镜像打个 tag:

docker tag gcr.io/kubernetes-helm/tiller:v2.13.1 ccr.ccs.tencentyun.com/admirable/tiller:v2.13.1

然后我们使用 docker login ccr.ccs.tencentyun.com 命令登录 registry,输入自己的用户名密码。最后 docker push ccr.ccs.tencentyun.com/admirable/tiller:v2.13.1

应用 tiller 镜像

最后我们利用 kubectl 或者 Dashboard 将 kube-system 命名空间下的 tiller-deploy 的 image 改成 ccr.ccs.tencentyun.com/admirable/tiller:v2.13.1 即可。