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(十三)访问控制

Linux企业运维——Kubernetes(二十)Prometheus监控

Linux企业运维——Kubernetes(二十)Prometheus监控

Linux企业运维——Kubernetes(十四)PSP安全策略

Linux企业运维——Kubernetes(十六)容器资源监控

Linux企业运维——Kubernetes(十六)容器资源监控