安装 k8s 包管理器 helm

Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来管理 Charts。有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。

介绍

Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来管理 Charts。有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。

Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。

对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。

对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

相关术语

Helm:

Helm 是命令行客户端程序,主要用来管理 k8s 应用程序 Chart 的 创建,打包,发布以及管理本地及远程 helm 仓库。

Tiller:

Tiller 是 helm 的服务端程序,部署在 k8s 集群中,负责和 helm 客户端进行交互,根据 Chart 生成 k8s yaml 部署文件交给 k8s 集群去创建应用。

Chart:

Helm 的软件包,tar 格式。

Repository:

Helm 的软件仓库。

Release:

执行 helm install 命令部署 Chart 称之为 release。

安装

(1) 安装 helm 客户端

$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh

(2) 安装 helm 服务端

$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ helm init -i jimmysong/kubernetes-helm-tiller:v2.11.0
$ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

(3) 检查是否安装成功

$ kubectl -n kube-system get pods|grep tiller
tiller-deploy-2372561459-f6p0z         1/1       Running   0          1h
$ helm version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
miaowing
A Javascript & Typescript developer
Posted on 2019-10-19

Share this post

Scan to open in WeChat

Stay tuned

  • Add me on WeChat

  • Subscribe to my newsletter