Kubernetes(k8s)之k8s的应用的包管理工具Helm

Helm

    • Helm简介
    • 相关概念解释
    • 演示环境
    • Helm部署
    • Helm安装使用示例
    • 本地Chart仓库的搭建
      • 构建一个自己的Chart包
      • 添加本地repo源
      • 安装push插件
      • 上传打包好的Chart包
      • 本地源测试与版本更迭

Helm简介

Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum

对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。

对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

官方文档:https://helm.sh/zh/docs/topics/architecture/
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第1张图片

相关概念解释

  • 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下
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第2张图片
设置helm命令补齐
在这里插入图片描述
虚拟机可以上网,添加repo源

helm repo add https://charts.bitnami.com/bitnami

Kubernetes(k8s)之k8s的应用的包管理工具Helm_第3张图片
至此Helm已经可以使用了

Helm安装使用示例

使用方法和yum源差不多,列出redis源
在这里插入图片描述
拉取6.3.2的源安装包
在这里插入图片描述
解压进入目录,values.yaml是主要的配置文件
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第4张图片
安装redis,注意路径
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第5张图片
等一会儿查看pod都已就绪
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第6张图片
使用如下命令可列出已安装的chart
在这里插入图片描述
卸载使用如下命令即可
在这里插入图片描述

本地Chart仓库的搭建

构建一个自己的Chart包

构建一个 Helm Chart(自动创建目录),下载tree应用Kubernetes(k8s)之k8s的应用的包管理工具Helm_第7张图片
查看mychart 结构
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第8张图片
进入目录编辑chart文件
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第9张图片
版本写为v1
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第10张图片
编辑value文件,做下图更改
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第11张图片

harbor仓库默认会动态创建PV持久卷,如果集群中不支持,可以禁用相应的配置:
persistence:
  enabled: false

更改完后,helm lint .检查依赖和模板配置是否正确(注意路径)
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第12张图片
打包得到chart包
在这里插入图片描述

添加本地repo源

在仓库新建一个项目,要公开
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第13张图片
添加本地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组件
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第14张图片
进入仓库看显示如下图即正确
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第15张图片
这次再添加即没有问题了
在这里插入图片描述

安装push插件

查看环境变量,获取插件目录并创建
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第16张图片
指定路径解压提前下载的插件包,helm push --help正常显示即可用
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第17张图片

上传打包好的Chart包

使用如下命令传入仓库(后边跟的是harbor仓库的用户名和密码)
在这里插入图片描述
再进入仓库查看已有,说明上传成功
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第18张图片
更新repo源即可列出我们添加的本地源(下图我手动结束是因为本地的源已更新好,只是上面加的外网源的更新慢)
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第19张图片
可以用下图命令查看信息
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第20张图片

本地源测试与版本更迭

下载我们自己制作的chart包
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第21张图片
得到service/mychart的ip进行访问,可以看到版本是v1

Kubernetes(k8s)之k8s的应用的包管理工具Helm_第22张图片
进入chart包的目录编辑两个配置文件将版本改为v2
在这里插入图片描述
chart文件作如下修改
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第23张图片
values文件作如下修改
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第24张图片
检查没错
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第25张图片
重新打包并上传至仓库
在这里插入图片描述
更新并查看chart包版本
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第26张图片
使用如下命令升级本地安装的chart包的版本,得到ip并访问,版本更新成功
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第27张图片
history可以查看版本更新历史
在这里插入图片描述
回滚回版本v1,访问回滚成功
Kubernetes(k8s)之k8s的应用的包管理工具Helm_第28张图片

你可能感兴趣的:(Docker容器+k8s,linux,docker,kubernetes,运维)