- Helm学习指南:Kubernetes上的应用程序管理
- (美)马特·布彻 马特·法里纳 乔什·多利茨基
- 2919字
- 2025-04-08 08:52:27
2.1 安装和配置Helm客户端
Helm提供了一个能够执行所有主要Helm任务的命令行客户端:helm。虽然还有许多其他工具可以使用Helm chart,但这是由Helm核心维护人员维护的官方通用工具,也是本章和下一章的主题。
helm客户端是用Go语言编写的。与Python、JavaScript和Ruby不同,Go是一种编译语言。一旦编译了Go程序,就不需要任何Go工具来运行或以其他方式处理二进制文件。
因此,我们将首先介绍下载和安装静态二进制文件,然后简要介绍获取和编译Go源代码的过程。
2.1.1 安装预构建的二进制文件
每次Helm维护人员发布新版本的helm时,项目都会为许多常见的操作系统和架构提供新的helm签名二进制版本。在撰写本书时,可以在64位Intel/AMD、ARM、s390和PPC等架构上为Linux、Windows和macOS操作系统提供预构建版本的Helm。这意味着你可以在从树莓派到超级计算机的任何机器上运行Helm。
Helm发布的最终列表在Helm发布页面(https://oreil.ly/L_My5)。发布页面将显示按时间顺序排列的发布列表,最新版本位于顶部。
使用软件包管理器安装
许多操作系统软件包管理器,包括适用于macOS的Homebrew、适用于Linux的Snap和适用于Windows的Chocolate,都可以安装Helm。我们是软件包管理的忠实爱好者。软件包管理器使安装、更新和删除软件变得容易,因此我们鼓励你让你的操作系统软件包管理器安装Helm。但通常明智的做法是检查所选软件包管理器中的版本是否与当前在Helm站点上标记为stable的版本相同。
关于Helm版本号
直到2020年11月,两个不同的主要版本的Helm都被积极维护。目前稳定的是Helm 3。当你访问Helm下载页面时,可能会看到两个版本都可以下载。因为版本是按时间顺序列出的,所以一个Helm 2版本甚至有可能比最新的Helm 3版本还新。但你应该使用Helm 3。
Helm遵循一种称为语义版本管理(SemVer)(https://semver.org)的版本管理约定。在语义版本管理中,版本号表示你能期望在发行版中获得的内容。因为Helm遵循该规范,所以用户只需仔细阅读版本号就可以从发行版中获得特定的东西。
语义版本的核心是三个数字部分和一个可选的稳定性标记(stability marker)(用于alpha、beta和候选版本)。以下是一些示例:
·v1.0.0
·v3.3.2
·v2.4.22-alpha.2
我们先来讨论数字部分。
我们经常将这种格式概括为X.Y.Z,其中X是主版本(major version),Y是次要版本(minor version),Z是补丁版本(patch release):
·主版本号往往很少增加。它表明对Helm进行了重大更改,其中一些更改可能会破坏与以前版本的兼容性。Helm 2和Helm 3之间的差别很大,需要在两个版本之间进行迁移。
·次要版本号表示新增功能。3.2.0和3.3.0之间的区别可能是添加了一些小的新特性。但是,版本之间没有突破性的修改(breaking change)。有一个警告:一个安全修复可能需要一个突破性的修改,但在这种情况下,我们会强调指出。
·补丁版本号表示在这个版本和上一个版本之间只进行了向后兼容的bug修复。建议始终保持最新的补丁版本。
当你看到一个版本在版本号后面附加了一个稳定性标记(如alpha.1、beta.4或rc.2)时,这意味着该版本被认为是一个预发布版本,还没有准备好用于主流生产。特别是,Helm经常在主要或次要更新之前发布候选版本。在发布最终版本之前,社区有机会就稳定性、兼容性和新特性向我们提供一些反馈。
记住这一点,我们准备继续实际的安装。
下载二进制文件
从存储库安装Helm最简单的方法就是进入发布页面(https://oreil.ly/L_My5)并下载最新的Helm 3版本。
在Windows上,下载文件是包含README.md文本文件、LICENSE文本文件和helm.exe的ZIP压缩包。
在macOS和Linux上,下载的是一个gzip tar压缩包(.tar.gz),它可以用tar-zxf命令提取。与Windows版本一样,它将包含README.md文本文件、LICENSE文本文件和helm二进制文件。如果你使用的是Windows Subsystem for Linux(WSL),那么应该将Linux AMD64版本安装到WSL实例中。
无论你使用哪种操作系统,二进制文件都是运行Helm所需的唯一文件,你可以将其放置在系统中你喜欢的任何位置。它应该被预先标记为可执行文件,但是在类似UNIX的环境中,在很少的情况下,你可能还需要运行chmod helm+x命令来将Helm设置为可执行文件。
当使用Homebrew(macOS)、Snap(Linux)或Chocooley(Windows)等软件包管理器进行安装时,helm将安装在标准位置,并能通过命令行立即使用。
安装helm后,就应该能够运行helm help命令并查看Helm帮助文本。
使用get脚本安装
在macOS和Linux上,你可能更喜欢运行shell脚本,该脚本将决定要安装哪个版本的Helm,并自动为你完成安装。
以这种方式安装的命令序列通常如下所示:

前面的命令获取最新版本的get_helm.sh脚本,然后使用该脚本查找并安装最新版本的Helm 3。
对于自动安装Helm的系统,例如持续集成(CI)系统,如果需要始终使用最新的Helm版本,我们建议使用此方法安装。
2.1.2 从源代码构建的指南
除非你已经熟悉Go开发,否则从源代码构建Helm可能是一项艰巨的任务。你将需要make命令的一个版本。因为Makefile样式的构建脚本不遵循单一的标准,所以并非make的所有版本都能用于构建Helm。Gnu Make是Linux和Mac上最常用的一个,也是大多数Helm核心开发人员最常用的,所以这是一个安全的选择。你还需要gcc编译器和整个Go工具链。
除此之外,Helm还需要一些辅助工具。幸运的是,当你第一次运行make时,它将尝试安装缺少的任何其他工具。
虽然git工具和kubectl命令不是绝对必要的,但是你可能还需要它们。git工具将允许你直接使用Helm源代码库,而不是下载源代码包。kubectl用来与Kubernetes集群进行交互。虽然这对于构建Helm不是必需的,但是在检查Helm是否执行了你希望它执行的操作时,它确实是必需的。
安装并配置了这些工具后,就可以简单地更改包含Helm源代码的文件夹中的目录(包含README.md和Makefile文件)并运行make build。第一次运行此命令时,至少需要几分钟。构建系统必须获取大量依赖项,包括许多Kubernetes源代码,并对其进行编译。
第一次编译Helm可能会让人望而生畏,特别是如果你对Go编程语言还不熟悉的话。Kubernetes是一个复杂的平台,因此Helm的源代码量很大,很难构建。一个新的环境至少要花一两个小时来准备安装Helm。
要验证Helm是否正常工作(特别是在修改了源代码的情况下),可以运行make test。这将构建代码,运行各种检查器(checker)和代码校验器(linter),然后运行Helm的单元测试。如果你计划对Helm进行任何更改,在Helm的核心维护人员查看你请求的更改之前,这个命令必须通过。
Helm编译完成时,它将与源代码一起位于名为bin/的子目录中。它不会自动添加到可执行路径中,因此要执行刚刚构建的版本,可能需要指定相对或精确的路径(例如,./bin/helm或$GOPATH/src/helm.sh/helm/bin/helm)。
如果命令helm version正确执行,你可以确信已经正确编译了Helm。
从这里,你可以按照详细的开发人员指南(https://oreil.ly/X9-Ii)了解更多信息。一如既往,如果遇到问题,Kubernetes Slack服务器上的helm-users频道是寻求帮助的好地方。
2.1.3 使用Kubernetes集群
Helm直接与kubernetes API服务器交互。因此,Helm需要能够连接到Kubernetes集群。Helm试图通过读取kubectl(主Kubernetes命令行客户端)使用的相同配置文件来自动完成这一任务。
Helm将尝试通过读取环境变量$KUBECONFIG来查找此信息。如果没有设置此环境变量,它将在与kubectl相同的默认位置中查找(例如,在UNIX、Linux和macOS上,$HOME/.kube/config)。
你还可以使用环境变量(HELM_KUBECONTEXT)和命令行标志(--kube-context)覆盖这些设置。运行helm help可以看到环境变量和标志的列表。
Helm维护人员建议使用kubectl来管理Kubernetes凭据,让Helm只自动检测这些设置。如果你还没有安装kubectl,最好从Kubernetes的官方安装文档(https://oreil.ly/pHZIh)开始。
2.1.4 Helm入门
无论你是从源代码构建Helm,还是使用上述方法之一安装Helm,此时你的系统上都应该有helm命令了。从这里开始,我们将假设Helm可以通过helm命令执行(而不是上一节讨论的完整路径或相对路径)。
在下面的内容中,我们将了解从Helm开始的最常见的工作流程:
1.添加chart存储库。
2.查找要安装的chart。
3.安装Helm chart。
4.查看安装内容列表。
5.升级安装。
6.删除安装。
在下一章中,我们将深入了解Helm的一些附加功能,并在此过程中进一步了解Helm的工作原理。