Helm
前言
最近一直在研究kubernetes相关的技术,公司用到了Helm,之前了解的一直不深,本着探索的精神,今天把这个工具好好的学一下
什么是Helm
Helm是Kubernetes的包管理器,类似于Linux中的yum、apt-get等工具
为什么要用Helm
我们都知道,在kubernetes中部署应用是通过yaml文件来进行配置的,拿部署nginx举例,在k8s中部署需要以下文件
- deployment
- service
- ingress
- …
我们需要手动的配置好这些文件,并在其中配置好对应的关系。在应用多的情况下,管理这些yaml是十分困难的
使用Helm的好处
- 不必为每个应用手动编写单独的yaml文件,只需要创建helm图表,将应用程序部署到集群中即可
- 在k8s集群对容器编排的基础上,helm是对应用进行编排,主要用于管理k8s中复杂的应用
- helm可以管理k8s中的资源依赖,可以重用chart包,可以为不同集群定制不同的配置
- heml生态圈丰富、社区活跃
安装Helm
helm官方提供了好几种安装方式,自己选择适用的即可,我这里介绍两种
使用二进制安装
- 下载需要的版本
- 解压软件包
[root@master-201 ~]# tar -zxvf helm-v3.5.4-linux-amd64.tar.gz -C /tmp/
linux-amd64/
linux-amd64/helm
linux-amd64/LICENSE
linux-amd64/README.md
- 在解压目录中找到
helm
程序,将其移动到系统命令中即可
mv /tmp/linux-amd64/helm /usr/bin/
使用脚本安装
Helm官方还提供了一个安装脚本
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
Helm 使用
在使用Helm之前,需要先了解下Helm中的三大概念
- Chart
- Repository
- Release
Chart: CHart表示的是一个Helm包。一个Chart包含了运行kubernetes集群中应用的所需要的工具、服务、资源定义等内容(类似Centos中的rpm包)
Repository: 存放Charts的仓库,类似于Centos中的yum源(软件包仓库)
Release: 运行在Kubernetes集群中的chart的实例。一个chart可以在一个集群中安装多次,每次安装会产生一个新的Release
简单使用
安装完helm之后,我们可以直接敲helm命令,来查看帮助文档。这里介绍几个常用的命令
helm search
使用helm search来查找charts
使用语法
- helm search hub 从官方的仓库中查找列出可用的helm charts
- helm search repo 从添加到本地的仓库中进行查找(使用 helm add repo “库名” 命令添加库到本地)
示例:
$ helm search hub
https://artifacthub.io/packages/helm/snyk/snyk-... 1.54.0 A Helm chart for the Snyk Monitor
https://artifacthub.io/packages/helm/isotoma/so... 0.1.5 1.0 A Helm chart for socat-tunneller
https://artifacthub.io/packages/helm/softonic/s... 0.2.0 1.0.0 A Helm chart for Kubernetes
https://artifacthub.io