云网牛站
所在位置:首页 > Linux云服务器 > 在Kubernetes集群上安装和使用Helm 2的方法

在Kubernetes集群上安装和使用Helm 2的方法

2019-12-13 15:48:05作者:夏蓝稿源:云网牛站

我们将介绍如何安装和使用Helm 2在Kubernetes集群(Kubernetes Cluster)上部署和管理应用程序(Helm charts)。Helm是一种用于简化Kubernetes应用程序的安装和管理的工具,你可以将Helm视为YUM/APT或Kubernetes的Homebrew软件包管理器,安装和运行Helm几乎不需要任何先决条件,但应准备:Kubernetes集群(参考:在Docker中运行本地Kubernetes集群)、管理员权限以安装Tiller、本地配置的kubectl。

 

一、安装Helm客户端

Helm客户端可在笔记本电脑、CI/CD管道等上运行,通过bash脚本可以简化Helm客户端的安装:

curl -L https://git.io/get_helm.sh | bash

安装输出如下:

Helm v2.16.1 is available. Changing from version .

Downloading https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz

Preparing to install helm and tiller into /usr/local/bin

helm installed into /usr/local/bin/helm

tiller installed into /usr/local/bin/tiller

Run 'helm init' to configure helm.

helm二进制软件包将安装到/usr/local/bin/目录:

$ helm version

Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}

 

二、创建Tiller服务帐户和角色绑定

Helm2具有一个称为Tiller的服务器组件,由于没有分till,这在Helm 3中有所改变,tiller service将在我们的Kubernetes集群中运行,当在集群中管理Helm应用程序时,Helm客户端会与它交互。

我们需要为Tiller创建一个具有对集群的管理员访问权限的服务帐户,创建一个名为tiller-serivice-account.yaml的新文件:

$ vim tiller-account-rbac.yaml

将下面的数据粘贴到文件中:

apiVersion: v1

kind: ServiceAccount

metadata:

 name: tiller

 namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

 name: tiller

roleRef:

 apiGroup: rbac.authorization.k8s.io

 kind: ClusterRole

 name: cluster-admin

subjects:

 - kind: ServiceAccount

  name: tiller

  namespace: kube-system

根据清单定义,我们创建了一个对tiller service帐户具有集群管理员权限的ClusterRoleBinding。

使用kubectl命令在Kubernetes中创建资源:

$ kubectl apply -f tiller-account-rbac.yaml

serviceaccount/tiller created

clusterrolebinding.rbac.authorization.k8s.io/tiller created

确认创建这些对象:

$ kubectl get serviceaccount tiller -n kube-system

NAME  SECRETS  AGE

tiller  1  64s

$ kubectl get clusterrolebinding tiller -n kube-system

NAME  AGE

tiller  100s

 

三、部署Tiller并初始化Helm

helm init命令用于将Tiller(Helm服务器端组件)安装到你的Kubernetes集群,请注意,此命令将发现Kubernetes集群。

通过阅读$KUBECONFIG(默认为'~/.kube/config')并使用默认上下文。

如果你有多个集群,请确保切换到所需的集群,请参考:安装及使用kubectl、kubectx和kubens轻松管理多个Kubernetes集群

现在,使用以下命令初始化Helm。

$ helm init --service-account=tiller \

 --stable-repo-url=https://kubernetes-charts.storage.googleapis.com \

 --upgrade \

 --automount-service-account-token=true \

 --replicas=1 \

 --history-max=100 \

 --wait

以下是helm init命令的输出:

在Kubernetes集群上安装和使用Helm 2的方法

选项–tiller-image可用于安装特定版本的Tiller,例如:

--tiller-image=gcr.io/kubernetes-helm/tiller:v2.16.0

初始化还将在$HELM_HOME中设置本地配置(默认~/.helm/):

$ ls ~/.helm 

cache plugins repository starters

在kubernetes端,你应该看到一个名为tiller-deploy的新部署:

$ kubectl get deployment  -n kube-system

$ kubectl get deployment tiller-deploy -n kube-system -o wide

在Kubernetes集群上安装和使用Helm 2的方法

至此,部署Tiller并初始化Helm完成。

 

相关主题

用脚本在Linux服务器中自动安装Kubernetes包管理器Helm的方法

精选文章
热门文章