作者
微信:tangy8080
电子邮箱:914661180@qq.com
更新时间:2019-06-25 13:54:15 星期二
欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章
如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。
文章主题
介绍如何在k8s集群中安装helm
前置条件
您已经构建好了一个k8s集群
正文
helm是一个在k8s平台上的部署管理工具,简单来说您可以把它认为像是360软件管家,centos上的yum 一样的用途.它可以方便的安装,升级,卸载 k8s中程序
如果您经常在k8s中部署程序,那么可能面临以下尴尬:
安装一个程序,除了程序本身之外,往往还需要建立存储卷,建立凭证,建立服务,建立Ingress等等,工作比较繁琐
- 如果现在要卸载一个程序,往往也得删除存储卷,删除服务,删除Ingress等工作
如果应用配置有变化,可能需要重新部署
helm可以解决上面的问题,比如您需要部署es,只需要下面一条命令(在实际部署时,可能需要更改部署参数,这里仅做实例说明)
helm install --name elasticsearch --set image.tag=6.7.0, client.replicas=3,cluster.name=kubernetes,data.persistence.storageClass=nfs-client,master.persistence.storageClass=nfs-client stable/elasticsearch
有关更多详细资料您可以参阅:https://helm.sh/
现在在github中也托管了很多支持使用helm来部署的软件包:https://github.com/helm/charts
helm的工作方式
helmctl >(控制)> k8s集群中的tiller 由tiller完成相关的控制操作
安装依赖项目
#在每个节点上安装
yum install -y socat
- 不安装可能会报错:uid : unable to do port forwarding: socat not found.
安装Helm命令行工具
cd /usr/local/src
wget https://get.helm.sh/helm-v2.14.1-linux-amd64.tar.gz
tar -zxvf helm-v*-linux-amd64.tgz
mv linux-amd64/helm /usr/local/bin/helm
#测试命令行是否可以使用
helm help
在K8s集群中部署tiller
创建一个ServiceAccount
由于tiller需要在集群中执行高级别权限的操作(创建,删除全部资源),所以我们为其绑定到cluster-admin角色
更多资料,您可参阅:https://helm.sh/docs/using_helm/#role-based-access-control
以下操作请在kubectl命令行工具下,或者dashboard下创建
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
以下操作请在安装了helm的机器上执行
helm init --service-account tiller --history-max 200
如果一切成功,您将在kube-system名称空间下看到部署:tiller-deploy
解决repo不能访问的问题
helm 的仓库配置在repositories.yaml文件中
在安装程序时helm需要在仓库中搜索程序包,但默认的仓库由于一些原因可能无法访问,我们需要更换仓库地址
helm repo remove stable
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo list
如图所示,我这里已经将stable的仓库地址更改到了微软提供的仓库
引用链接
https://helm.sh/docs/using_helm/#role-based-access-control
https://github.com/googlehosts/hosts/blob/master/hosts-files/hosts
所有评论(0)