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

Posted Tuki_a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes(k8s)之k8s的应用的包管理工具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应用服务

kubernetes之K8s核心原理--第二篇

云原生之kubernetes实战在k8s环境下部署Laverna笔记工具

云原生之kubernetes实战在k8s环境下部署Discuz论坛系统