Helm

Helm介绍

Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。类似linux操作系统的软件包管理工具(yum, apt,opkg)

安装

Helm二进制版本安装

每个Helm版本都提供了常见操作系统的二进制版本,可以直接手动下载安装。下载地址arrow-up-right 以CentOS为例,下载 helm-v3.6.3-linux-amd64.tar.gz,解压压缩包后,在目录中找到helm程序,复制或移动要需要的目录中(mv helm /usr/local/bin/helm)

使用脚本安装

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

使用包管理器安装

MacOS 使用Homebrew

brew install helm

Windows 使用Chocolatey

choco install kubernetes-helm

Debian/Ubuntu 使用 apt

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helmcurl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

其它安装方法请参考官方文档arrow-up-right

旧版本安装

因为Helm版本兼容Kubernetes范围有限(具体偏差参考下面的可支持的版本偏差兼容列表 ),有时遇到维护比较老的Kubernetes版本时就需要安装比较老版本的Helm。下面以Helm V2.8.2为示例

Helm版本支持策略

支持的版本

Helm的版本用 x.y.z 描述,x是主版本,y是次版本,z是补丁版本,遵循 语义化版本 术语。 Helm项目维护了一个针对最近次要版本的发布分支。适当的修复,包括安全修复、从发布分支中的cherry-pick, 视严重程度而定。更多细节请查看 Helm版本策略。

可支持的版本偏差

当一个Helm的新版本发布时,它是针对Kubernetes的一个特定的次版本编译的。比如,Helm 3.0.0 与Kubernetes的1.16.2的客户端版本交互,一次可以兼容Kubernetes 1.16。 从Helm 3开始,Helm 编译时假定与针对n-3版本的Kubernetes兼容。由于Helm 2对Kubernetes次版本变更的支持稍微严格一点, 则假定与Kubernetes的n-1版本兼容。 例如,如果您在使用一个针对Kubernetes 1.17客户端API版本编译的Helm 3版本,那么它应该可以安全地使用Kubernetes 1.17, 1.16,1.15,以及1.14。如果您在使用一个针对Kubernetes 1.16客户端API版本编译的Helm 2版本,那么它应该可以安全地使用 Kubernetes 1.16 和 1.15。 不推荐将Helm用于比编译它所依赖的版本更高的Kubernetes版本,因为Helm并没有做出任何向前兼容的保证。 如果您选择了一个Kubernetes版本不支持的Helm,需自负风险。

请参考下面的链接来确定哪个版本的Helm与您的集群兼容。 Helm版本支持策略arrow-up-right

使用Helm

主要介绍了使用 Helm 来管理 Kubernetes 集群上的软件包的基础知识。

三大概念

  • Chart 代表着Helm包。它包含在Kubernetes集群内部运行应用程序、工具或服务所需的所有资源定义。可以把它看作是apt dpkgyum RPMKubernetes中的相同东西。

  • Repository(仓库) 是用来存放和共享charts的地方,类似软件包仓库

  • Release 是运行在Kubernetes集群中的chart的实例,一个chart通常可以在同一个集群中安装多次,每次安装都会创建一个新的release。以MySQL chart为例,如果你想在集群中运行两个数据库,那你可以安装该chart两次,每个数据库都会拥有它自己的releaserelease name

查找Charts

Helm自带一个强大的搜索命令,可以从两种来源中进行搜索:

  • helm search hub $NAMEArtifact Hub中查找并列出helm charts。Artifact Hub中存放了大量不同的仓库

  • helm search repo $NAME 从你添加(使用 helm repo add $NAME $URL)到本地helm客户端中的仓库中进行查找。基于本地数据搜索,无需连接网络。

基本操作

添加chart仓库

历史版本

最后更新于