k8s之安装配置Helm工具

[复制链接]

1275

主题

1275

帖子

1013

积分

金牌会员

Rank: 6Rank: 6

积分
1013
分享到:
发表于 2022-6-24 11:05:26 | 显示全部楼层 |阅读模式
一、helm介绍在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps Hub中提供了包括Redis、MySQL和Jenkins等常见的应用,通过helm可以使用一条命令就能够将其部署安装在自己的Kubernetes集群中。
1、helm架构helm的整体架构如下图所示,Helm架构由Helm客户端、Tiller服务器端和Chart仓库所组成;Tiller部署在Kubernetes中,Helm客户端从Chart仓库中获取Chart安装包,并将其安装部署到Kubernetes集群中。

Helm是管理Kubernetes包的工具,Helm能提供下面的能力:
创建新的charts;将charts打包成tgz文件;与chart仓库交互;安装和卸载Kubernetes的应用;管理使用Helm安装的charts的生命周期;2、helm的重要概念在Helm中,有以下三个重要概念需要了解:
Charts:是创建Kubernetes应用实例的信息集合,也就是一个helm的程序包,它包含了运行一个k8s应用所有需要的镜像、依赖关系和资源定义等,必要时还会包含Service资源定义,它类似于yum的rpm文件;Repository:Chart仓库,用于集中存储和分发Charts。Config:应用程序实例化安装时运行使用的配置信息;Release:chart的运行实例,包含特定的config;在同一个集群中,一个Charts可以使用不同的config重复安装多次,每次安装都会创建一个新的Release。
3、helm组件在Helm中有两个主要的组件,即Helm客户端和Tiller服务器:
Helm客户端:是一个供终端用户使用的命令行工具。
客户端负责如下的工作:
本地chart开发;管理仓库与Tiller服务器交互(发送需要被安装的charts、请求关于发布版本的信息、请求更新或者卸载已安装的发布版本)Tiller服务器: Tiller服务部署在Kubernetes集群中,Helm客户端通过与Tiller服务器进行交互,并最终与Kubernetes API服务器进行交互。
Tiller服务器负责如下的工作:
监听来自于Helm客户端的请求组合chart和配置来构建一个发布在Kubernetes中安装,并跟踪后续的发布通过与Kubernetes交互,更新或者chart二、部署helm1、安装helm客户端#从github下载helm[root@master ~]# wget helm-v2.14.3-linux-amd64.tar.gz #解包,只需要包中的一个命令[root@master ~]# tar zxf helm-v2.14.3-linux-amd64.tar.gz ???[root@master ~]# mv linux-amd64/helm /usr/local/bin/[root@master ~]# chmod +x /usr/local/bin/helm #设置命令自动补全[root@master ~]# echo 'source <(helm completion bash)' >> /etc/profile[root@master ~]# . /etc/profile ???#重载环境变量2、安装Tiller server(需要创建授权用户)[root@master ~]# vim tiller-rbac.yaml ??#创建授权用户apiVersion: v1kind: ServiceAccountmetadata: ?name: tiller ?namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata: ?name: tillerroleRef: ?apiGroup: rbac.authorization.k8s.io ?kind: ClusterRole ?name: cluster-adminsubjects: ?- kind: ServiceAccount ???name: tiller ???namespace: kube-system[root@master ~]# kubectl apply -f tiller-rbac.yaml ???#执行yaml文件[root@master ~]# helm init --service-account=tiller ??#Tiller server的环境初始化#helm的服务端就是Tiller[root@master ~]# kubectl get pod -n kube-system | ?grep tiller ??#查看tiller的pod名称tiller-deploy-8557598fbc-tvfsj ??0/1 ????ContainerCreating ??0 ?????????2m16s[root@master ~]# kubectl edit pod tiller-deploy-8557598fbc-tvfsj -n kube-system#编辑pod的yaml文件,将其使用的镜像改为国内阿里云的,默认是Google的镜像,下载不下来#修改spec字段的image指定的镜像,如下: ???image: gcr.io/kubernetes-helm/tiller:v2.14.3#修改如下: ???image: registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3#修改后,保存退出即可,它会去自动下载新镜像(如果没有自动下载,就想办法吧,比如说在tiller容器所在的节点手动下载下来镜像,然后重启该节点的kubelet,或重启该容器)[root@master ~]# kubectl get pod -n kube-system | grep tiller#只要保证tiller的pod正常运行即可tiller-deploy-8557598fbc-m986t ??1/1 ????Running ??0 ?????????7m54s3、配置helm仓库[root@master ~]# helm repo list ?????#查看其仓库信息NAME ???URL ????????????????????????????????????????????stable ?https://kubernetes-charts.storage.googleapis.com#如上,默认是Google,在国外,速度特别慢local ??http://127.0.0.1:8879/charts ???#执行下面命令,更改为国内阿里云的仓库[root@master ~]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts[root@master ~]# helm repo list ??#再次查看,可以发现更改生效了NAME ???URL ??????????????????????????????????????????????????stable ?https://kubernetes.oss-cn-hangzhou.aliyuncs.com/chartslocal ??http://127.0.0.1:8879/charts ???????[root@master ~]# helm repo update ?????#更新一下helm仓库[root@master ~]# helm version ????#查看helm版本信息,必须保证可以查看出来client和server,才可正常使用helmClient: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}4、测试helm是否可以正常使用[root@master ~]# helm search mysql ?????#搜索MySQL#查看到的是charts包文件,查出来的版本是helm的Charts包的版本[root@master ~]# helm inspect stable/mysql ???#查看其详细信息[root@master ~]# helm fetch stable/mysql ???????#下载搜索到的包到本地[root@master templates]# helm install stable/mysql ??????#在线安装这个MySQL如果上述测试命令都可以正常执行,则表示helm配置无误。
———————— 本文至此结束,感谢阅读 ————————

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表