k8s之安装配置Helm工具
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、helm介绍在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升
千家信息网最后更新 2025年12月02日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 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配置无误。
-------- 本文至此结束,感谢阅读 --------
仓库
客户
应用
服务
客户端
服务器
信息
命令
容器
镜像
文件
版本
配置
集群
工具
实例
架构
用户
工作
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
b5服务器分差
深圳门禁软件开发中心
小白数据库测试手册
网络技术需要会数学吗
小花仙服务器介绍
车辆管理服务器
腾讯云服务器搭建个人网站背景
数据库实施和维护案例分析
关系型数据库端口号
湖北软件开发外包详情
保定中小学网络安全知识
泛微手机服务器
全国网络安全犯罪
网络安全流量编排系统
湖南衡阳网络安全陈丹丹
路由器虚拟网络安全吗
打印服务器共享扫描仪
浪潮软件开发在线测评
广州冠晟网络技术有限公司
网络技术osi参考模型定义
html如何把数据库连接
基于网络安全的体系与模型研究
语言数据库是什么
安徽依维妮网络技术公司
基于贝塔二项分布网络安全
数据库压力测试语句
嘉赢网络技术
古剑奇谭木语人官网服务器是哪些
服务器管理权台湾
数据安全数据库