k8s之安装配置Helm工具
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,一、helm介绍在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升
千家信息网最后更新 2024年11月25日k8s之安装配置Helm工具
一、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
二、部署helm
1、安装helm客户端
#从github下载helm[root@master ~]# wget https://get.helm.sh/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 7m54s
3、配置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配置无误。
-------- 本文至此结束,感谢阅读 --------
仓库
客户
应用
服务
客户端
服务器
信息
命令
容器
镜像
文件
版本
配置
集群
工具
实例
架构
用户
工作
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
京东云服务器自动签到
部落正式服哪个服务器人多
邯郸营销软件开发公司
中国官员数据库(COD)
负责网络安全的人的英文
视频监控网络安全培训
软件开发 进度估算
鹰潭市软件开发公司
上海放心软件开发品质保障
网络安全法律规章
如何确保服务器上的安全
呆萝卜软件开发工作怎么样
服务器连接手机怎么设置
驱动之家服务器怎么样
5年的软件开发技术一般
静安区多功能软件开发维修
沈阳互联网科技公司
数据库删除表列
linux虚拟机服务器
刺激战场亚服服务器的更新
幼儿网络安全儿歌
服务器内存可以插在台式电脑上吗
如何保障网络数据库的安全
passwd里的数据库密码
vb添加表格数据库驱动
小海豚数据库工具免费下载
哪儿有cc防护服务器
网络安全小诗歌儿童版
潍坊网络安全答题
西部数据软件开发