我们将介绍如何安装和使用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命令的输出:
选项–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
至此,部署Tiller并初始化Helm完成。
相关主题 |