Kubernetes(k8s)之k8s的应用的包管理工具Helm
Posted Tuki_a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes(k8s)之k8s的应用的包管理工具Helm相关的知识,希望对你有一定的参考价值。
Helm
Helm简介
Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
官方文档:https://helm.sh/zh/docs/topics/architecture/
相关概念解释
- Chart:一个Helm包(类似于RPM包), 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
- Release:在k8s上运行的一个Chart实例。
- Repository:用于存放和共享Chart仓库。
演示环境
server1:172.25.38.1 harbor仓库端
server2:172.25.38.2 k8s master端
server3:172.25.38.3 k8s node端
server4:172.25.38.4 k8s node端
要求至少server2虚拟机可以上网
Helm部署
Helm最新版本官网下载:https://helm.sh/docs/intro/
新建一个目录,解压提前下好的helm包,并将二进制可执行文件放到/usr/local/bin下
设置helm命令补齐
虚拟机可以上网,添加repo源
helm repo add https://charts.bitnami.com/bitnami
至此Helm已经可以使用了
Helm安装使用示例
使用方法和yum源差不多,列出redis源
拉取6.3.2的源安装包
解压进入目录,values.yaml是主要的配置文件
安装redis,注意路径
等一会儿查看pod都已就绪
使用如下命令可列出已安装的chart
卸载使用如下命令即可
本地Chart仓库的搭建
构建一个自己的Chart包
构建一个 Helm Chart(自动创建目录),下载tree应用
查看mychart 结构
进入目录编辑chart文件
版本写为v1
编辑value文件,做下图更改
harbor仓库默认会动态创建PV持久卷,如果集群中不支持,可以禁用相应的配置:
persistence:
enabled: false
更改完后,helm lint .
检查依赖和模板配置是否正确(注意路径)
打包得到chart包
添加本地repo源
在仓库新建一个项目,要公开
添加本地chart库(取名为lucky),出现如下错误,是缺少认证
将认证文件 ca.crt复制到 /etc/pki/ca-trust/source/anchors/,执行更新命令 update-ca-trust
[root@server2 helm]# cd /etc/pk
pkcs11/ pki/
[root@server2 helm]# cd /etc/pki/ca-trust/source/anchors/
[root@server2 anchors]# cp /etc/docker/certs.d/reg.westos.org/ca.crt .
[root@server2 anchors]# ls
ca.crt
[root@server2 anchors]# update-ca-trust
再次重新添加,又出现了404错误,是因为harbor仓库的问题,在安装的时候缺少chart组件
重新安装仓库,安装chart组件
进入仓库看显示如下图即正确
这次再添加即没有问题了
安装push插件
查看环境变量,获取插件目录并创建
指定路径解压提前下载的插件包,helm push --help
正常显示即可用
上传打包好的Chart包
使用如下命令传入仓库(后边跟的是harbor仓库的用户名和密码)
再进入仓库查看已有,说明上传成功
更新repo源即可列出我们添加的本地源(下图我手动结束是因为本地的源已更新好,只是上面加的外网源的更新慢)
可以用下图命令查看信息
本地源测试与版本更迭
下载我们自己制作的chart包
得到service/mychart的ip进行访问,可以看到版本是v1
进入chart包的目录编辑两个配置文件将版本改为v2
chart文件作如下修改
values文件作如下修改
检查没错
重新打包并上传至仓库
更新并查看chart包版本
使用如下命令升级本地安装的chart包的版本,得到ip并访问,版本更新成功
history可以查看版本更新历史
回滚回版本v1,访问回滚成功
以上是关于Kubernetes(k8s)之k8s的应用的包管理工具Helm的主要内容,如果未能解决你的问题,请参考以下文章
云原生之kubernetes实战在k8s集群环境下部署Tomcat应用
云原生之kubernetes实战k8s集群核心资源对象之Pod
云原生之kubernetes实战在k8s环境下部署Wordpress应用服务