k8s之安装配置Helm工具
发表于:2024-09-30 作者:千家信息网编辑
千家信息网最后更新 2024年09月30日,一、helm介绍在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升
千家信息网最后更新 2024年09月30日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安全错误
数据库的锁怎样保障安全
奇迹mu服务器要求
算法构建数据库
数据库报错找不到一个表
广东广电服务器突然绿灯闪
麻将软件开发工作室
mcbe怎么开服务器
教师怎样维护网络安全
服务器租用安全性高
网络安全攻防赛注意事项
插件式软件开发 c
网络安全av
电脑我的世界服务器发不出信息
网络安全售前考核
没有打印服务器属性
srm软件开发公司
sakila数据库演员表
招聘软件开发应该去哪个平台
教导处网络安全协议
客户定制软件开发需求调研表
唐山软件开发教学在线学习
厦门用友软件开发
阿里云ecs自主安装数据库
商店销售和聘用的数据库设计
如何更新服务器吃鸡
数据库设计需要多久
电脑我的世界服务器发不出信息
宿豫区网络技术诚信服务
网络安全管理郴州市公安局
app软件开发 价格
计算机网络技术是计算机类吗