1、什么是helm?

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

Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些Metadata,以便于应用程序的分发。即不再需要手动写控制器的yaml文件、svc的yaml文件、pod的yaml文件等等,使用打包好的helm直接一键部署。

  • 对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
  • 对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
    如图,之前学过的所有的东西,都可以打包成一个helm,一键部署
     

2、helm的安装

首先清空之间的环境,避免影响本次实验
 
查看官网https://helm.sh/docs/intro/
下载二进制文件helm-v3.4.1-linux-amd64.tar.gz
解压二进制文件,进入解压出来的目录,复制helm到/usr/local/bin,使其可执行
 
添加环境变量,重新应用,成功设置helm命令补齐
 
搜索官方helm hub chart库
 

helm repo add bitnami https://charts.bitnami.com/bitnami	%Helm 添加第三方 Chart 库
helm repo list			%查看repo源

 

3、helm部署redis

helm search repo redis查询redis应用
 
仓库新建一个项目,bitnami
 
准备镜像,上传到仓库
 

helm pull bitnami/redis-cluster		%拉取redis-cluster应用到本地
tar zxf redis-cluster-6.3.2.tgz		%解压
cd redis-cluster/					%进入解压得到的目录
vim values.yaml						%编辑values.yaml文件,该文件内包括大量的变量

 
指定仓库地址
 
在本目录安装
 
查看六个pod都running了,成功
 

4、helm部署nfs

之前自己手动部署过nfs,我们删除他,用helm的方式重新部署一个nfs,体现helm的方便。
 
同时删除pv、pvc
 
在server1中有nfs路径为 /mnt/nfs
创建子目录nfs-client-provisioner
 
仓库中创建新项目sig-storage
 
导入镜像,上传镜像
 
进入目录,网上拉取chart,解压。进入解压得到的目录
 
编辑values.yaml文件,修改镜像文件,nfs的服务器和路径
 
打开默认类,关闭打包功能,直接删除就行
 
查看有命名空间,安装nfs-client-provisioner,查看
 
查看默认sc已配置成功,
 
编写test-pvc.yaml文件

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-claim
spec:
 storageClassName: managed-nfs-storage-haha
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

应用test-pvc.yaml文件,创建pvc,测试nfs,正常绑定了
 
删除test-pvc.yaml文件所创建的pvc,pv自动没有了
 

5、helm部署metrics-server

删除之前手动部署的metrics-server,看不到cpu和mem的指标了
 
上传镜像
 
helm pull bitnami/metrics-server拉取metrics-server的部署文件,解压,进入解压得到的子目录,
 
修改values.yaml文件,添加仓库信息
 
正确修改镜像路径
 
打开api接口
 
创建命名空间metrics-server,安装metrics-server
 
查看所有的pod、svc都正常启动,并且成功监测cpu和mem核心指标