helm总结

153 阅读3分钟

helm是什么

Helm是Kubernetes(简称K8s)的包管理器,类似于操作系统中的包管理工具,如Ubuntu的apt-get或CentOS的yum。Helm使得在Kubernetes上查找、共享和使用软件包变得容易,特别适用于微服务架构的应用程序部署

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