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,访问回滚成功
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐