helm是什么
Helm是Kubernetes(简称K8s)的包管理器,类似于操作系统中的包管理工具,如Ubuntu的apt-get或CentOS的yum。Helm使得在Kubernetes上查找、共享和使用软件包变得容易,特别适用于微服务架构的应用程序部署
- 官方英文文档:helm.sh/docs/
- 官方中文文档:helm.sh/zh/docs/
Helm的优势
使用Helm可以带来以下优势:
- 简化部署:Helm允许使用单个命令轻松部署和管理应用程序,简化了整个部署过程
- 高度可配置:Helm Charts提供了高度可配置的选项,可以轻松自定义和修改应用程序的部署配置
- 版本控制:Helm允许管理应用程序的多个版本,从而轻松实现版本控制和回滚
- 模板化:Helm Charts使用YAML模板来定义Kubernetes对象的配置,简化了配置过程,并提高了可重复性和可扩展性
- 应用程序库:Helm具有应用程序库的概念,可以轻松地共享和重用Helm Charts,简化了多个应用程序的部署和管理
- 插件系统:Helm拥有一个强大的插件系统,允许扩展和定制Helm的功能,以满足特定的需求和要求
helm的主要概念
- Chart
代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物
- Repoistory
Helm 的应用仓库,是用来存放和共享 charts 的地方,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 应用包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询,Helm可以同时管理多个不同的Repository。 Helm社区官方提供了stable和incubator仓库,但Helm社区没有打算独占仓库,而是允许其他人和组织也可以搭建仓库。仓库可以是公共仓库,也可以是私有仓库。
- Release
在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 Release。例如一个 MySQL Chart,如果想在服务器上运行两个 MySQL 数据库,就可以把这个 Chart 安装两次。每次安装都会生成一个新的Release
helm安装
Helm安装官方文档:helm.sh/docs/intro/…
本文以安装v3.6为例
# 下载
[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.6.0-linux-amd64.tar.gz
# 解压
[root@k8s-master ~]# tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
# 移动到环境变量目录里面即可
[root@k8s-master ~]# mv linux-amd64/helm /usr/local/bin/helm
# 输出版本
[root@k8s-master ~]# helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}
helm 常用指令
- 添加仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
- 搜索chart
helm search repo bitnami
- 更新
helm repo update
- 安装chart
helm install bitnami/mysql --generate-name
- 获取chart详细信息
helm show all bitnami/mysql