Helm 是 Kubernetes 首选的包管理工具。Helm Charts 为 Kubernetes YAML 文件提供了模板语法。我们可以使用 Helm 代替静态文件,部署可配置的工作负载。如果您想创建自己的私有应用商店,请参照文档 Helm 官方文档 。使用 Helm 前,您需要在集群安装 tiller 服务端组件。

对于无法访问互联网的环境,请查看Helm - 离线安装获取更多安装信息。

请参阅Helm 版本要求,选择安装 Rancher 的 Helm 版本。

提示: 安装指南基于 Helm 2 写作,如果您在使用 Helm 3,请参照此说明

在集群中安装 Tiller

重要: 由于 Helm v2.12.0 和 cert-manager 的问题,请使用 Helm v2.12.1 或更新版本。

Helm 在您的集群中安装 tiller 服务来管理 charts。由于 RKE 默认开启了 RBAC,我们使用kubectl 命令创建一个 serviceaccountclusterrolebinding,为 tiller 提供在集群中部署应用的权限,如下方代码所示。

  • kube-system 命名空间中创建 serviceaccount
  • tiller 创建 clusterrolebinding 获取访问集群的权限。
  • 最后使用 helm 来安装 tiller 服务。
  1. kubectl -n kube-system create serviceaccount tiller
  2. kubectl create clusterrolebinding tiller \
  3. --clusterrole=cluster-admin \
  4. --serviceaccount=kube-system:tiller
  5. # 需要访问谷歌镜像库,如果无法访问请指定tiller-image
  6. helm init --service-account tiller

:::important 重要 中国的用户请注意,在运行 helm init 时,您需要指定特定的 tiller-image 来初始化 tiller。 初始化 tiller 时,需要通过 “—tiller-image” 指定 tiller 镜像。

  1. helm_version=`helm version |grep Client | awk -F""\" '{print $2}'`
  2. helm init --service-account tiller \
  3. --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:${helm_version}

:::

提示: 以上tiller安装后,对集群有完全访问权限。如果您需要调整 tiller 的访问权限,请查看Helm 官方文档

测试 Tiller

在您的集群上运行以下命令来验证 tiller 是否安装成功:

  1. kubectl -n kube-system rollout status deploy/tiller-deploy
  2. Waiting for deployment "tiller-deploy" rollout to finish: 0 of 1 updated replicas are available...
  3. deployment "tiller-deploy" successfully rolled out

并且运行以下命令验证 Helm 是否可以与 tiller 服务通信:

  1. helm version
  2. Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
  3. Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}

问题排查

请查看问题排查

后续操作

安装 Rancher