Linux企业运维——Kubernetes(十八)Helm包管理工具
Posted 是大姚呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux企业运维——Kubernetes(十八)Helm包管理工具相关的知识,希望对你有一定的参考价值。
Linux企业运维——Kubernetes(十八)Helm包管理工具
文章目录
一、Helm简介
Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
Helm Chart 是用来封装Kubernetes 原生应用程序的一系列 YAML文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm后不用需要编写复杂的应用部署文件,可以以简单的方式在Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis (https://deis.com/) 开发的一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。
Helm V3 与 V2 最大的区别在于去掉了tiller:
二、Helm安装部署
真实主机将helm-v3版本的包发送给server2的/root/helm目录下
server2创建helm目录并在该目录下解压真实主机发来的helm安装包,将解压后的helm文件复制到/usr/local/bin下,设置helm命令补齐
重新加载环境变量,使helm命令可用
server2要可以访问外网
搜索官方helm hub chart库
Helm添加第三方Chart 库,查看repo源,看到添加成功
三、使用Helm部署redis
真实主机将redis安装包发送给server2的helm目录下
server2解压redis安装包,编辑values.yaml文件
设置镜像仓库地址
查看存储类
harbor仓库新建一个项目名为bitenaml
真实主机将redis-cluster.tar发送给server1
server1上传镜像至仓库
server2使用helm命令安装redis-cluster
安装完redis-cluster后查看pod信息可以看到下图,卸载redis-cluster
四、构建Helm Chart
在helm目录下创建mychart
使用yum安装tree命令
可以看到mychart的目录结构
编辑Chart.yaml应用描述信息
配置如下图
编辑values.yaml应用部署文件,指定镜像文件仓库和标签
helm lint .
检查依赖和配置是否正确,然后将应用打包
在仓库新建一个项目名为charts
添加认证密钥并更新,添加chart仓库
真实主机将helm push插件发送给server2
查看helm环境变量获取插件目录,在指定插件目录下创建push文件夹
sever2将helm-push插件解压到helm插件目录下的push目录
上传mychart到仓库中
现在可以在harbor仓库中看到
helm repo update
进行更新后就可以search到mychart
安装部署仓库中的mychart
可以看到mychart部署成功
编辑Chart.yaml应用描述信息进行版本升级
编辑values.yaml应用部署文件,将镜像标签改为v2
检查依赖和模板配置是否正确
将mychart打包并上传,更新仓库信息,可以search到更新的信息
通过helm命令直接更新现在的mychart
测试访问,可以看到更新成功
还可以再回滚到v1版本,访问测试,成功返回到v1版本
五、Helm部署nfs-client-provisioner
查看之前手动部署的nfs-client-provisioner命名空间
添加第三方charts到本地仓库,在helm下创建新的nfs目录
harbor仓库中创建新项目sig-storage
真实主机将nfs-provisioner压缩包发送给server1
server1加载镜像并上传至sig-storage仓库
server2拉取chart并解压,编辑values.yaml应用部署文件
设置镜像仓库地址和nfs服务器及路径
allowVolumeExpansion字段设置成true开启扩容
archiveOnDelete为删除时是否存档,false表示不存档,即删除数据
删除之前手动部署的nfs-client-provisioner
相关pvc和pv都清理干净
通过helm部署nfs-client-provisioner
查看nfs-client-provisioner命名空间信息,可以看到部署成功
测试创建pvc查看nfs功能是否能正常使用
应用配置,可以看到创建成功,功能正常
删除pvc,pv自动回收
六、Helm部署metrics-server
真实主机将metrics-server包发送给server2
server2解压metrics-server包,编辑values.yaml应用部署文件
更改镜像标签
server1加载metrics-server镜像
将镜像上传至bitenami仓库
编辑values.yaml应用部署文件,添加镜像仓库
其他配置如下
进入之前手动部署metrics-server目录,将其删除,测试kubectl top node命令,可以看到API不可用
创建metrics-server命名空间
通过helm部署metrics-server,指定命名空间metrics-server
使用上图中指令获取信息
查看metrics-server命名空间的详细信息
kubectl top node
现在可以看到所有节点资源使用情况,部署成功
以上是关于Linux企业运维——Kubernetes(十八)Helm包管理工具的主要内容,如果未能解决你的问题,请参考以下文章
Linux企业运维——Kubernetes(二十)Prometheus监控
Linux企业运维——Kubernetes(二十)Prometheus监控
Linux企业运维——Kubernetes(十四)PSP安全策略