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现在可以看到所有节点资源使用情况,部署成功
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值