如果您具有开发背景,您可能知道包管理器(Package Manager)这个术语。包管理器允许您安装依赖项、升级和降级版本等等。在本教程中,我们将介绍一个非常流行的包管理器,用于 Kubernetes,名为 Helm.
Helm 有助于管理 Kubernetes applications。使用 Helm,您可以定义 Kubernetes 应用程序,指定应用程序元数据、依赖项和配置。Helm 还可以将应用程序安装在 Kubernetes 上,以及升级和降级应用程序。最后,您可以使用 Helm 文件与他人共享您的应用程序。在本教程中, 我们将向您展示如何在 Windows 操作系统上安装 Helm 3,以及设置、升级、回滚和管理 chart 和 release。
让我们开始吧!
前提条件
在开始本教程之前,您需要确保首先安装了以下内容:
-
如果您尚未在 Windows 上设置 Kubernetes,最简单的方法是开始使用 Docker Desktop。访问 https://www.docker.com/products/docker-desktop。下载并安装 Docker Desktop。在本教程中,我们将使用 Windows。因此,我们需要安装 WSL 2 Backend。这是适用于 Windows 的 Linux 子系统,并支持 Docker:

一旦 Docker Desktop 准备就绪,转到 Settings -> Kubernetes,并勾选 Enable Kubernetes:


要检查一切是否正常运行,请转到您正在使用的终端/powershell,并输入以下命令:
|
1 |
kubectl |
如果您看到以下输出,就可以开始了:

或者,如果您决定在 Ubuntu 上工作,可以参考我们的详细指南:如何在 Ubuntu 20.04 上安装和使用 Kubernetes.
此外,在开始安装过程之前,让我们先了解一些与 Helm 相关的关键术语。
-
Charts
Kubernetes YAML 文件打包在 Helm chart 中。
-
Helm Repositories
Helm 提供对仓库的支持。Helm 仓库是存放 Helm chart 的位置,以便其他人可以使用它们。Helm 允许您创建自己的仓库,并支持第三方仓库。
-
Tiller
Tiller 是 Helm 的服务端组件。它需要安装在 Kubernetes 集群上。它接收 Helm Chart 并相应地配置集群。
您也可以看看我们的 博客文章,其中详细概述了 Helm 并解释了 Helm 简化 Kubernetes 应用程序部署的方法。
现在,我们准备好开始了!
步骤 1:安装 Helm 3
安装 Helm 3 是一个简单的过程。版本发布可在 on the Helm GitHub page。您可以根据选择的操作系统下载要使用的版本。在本教程中,我们将使用 Windows 操作系统,因此对于 Windows,请遵循以下步骤:
-
在 GitHub 页面上,下载适用于 Windows 的 Helm 二进制文件。
-
下载完成后,您将在您的 Downloads 文件夹或您下载它的任何地方找到该压缩包。
-
接下来,将此压缩包移动到方便的位置并解压。您应该在解压后的内容中找到 helm.exe 文件:

-
复制文件夹位置并将其添加到系统环境变量中的 PATH 变量中。
-
完成后,打开终端并输入以下命令:
|
1 |
helm |
如果您看到以下输出,说明 Helm 安装已全部就绪。然后您可以继续进行下一步:

步骤 2:设置仓库并安装 Helm Chart
Helm 支持访问和管理仓库。仓库是存储 Helm Chart 的地方。最初, Helm 没有自己的仓库。相反,Helm 鼓励管理人员和 DevOps 专家创建自己的仓库。这意味着如果您想在 Kubernetes 集群上拥有 MongoDB ,您需要自己将其添加到 Helm 仓库中。为了帮助您找到这些仓库,您可以使用 Artifact.io。它是所有 Helm chart 的开源目录,由 the CNCF.
下面我们将向您展示如何设置仓库以及下载和安装软件。我们将以安装 MongoDB 为例。假设您要在 Kubernetes 集群上安装 MongoDB。请按照以下步骤进行安装:
-
首先,访问 https://artifacthub.io.
-
接下来,搜索 MongoDB。搜索后,您会看到有很多可用的选项。我们感兴趣的是 MongoDB by Bitnami:

-
搜索结束后,您将看到不同的选项。在每个 chart 旁边,您可以看到发布者、版本和其他相关信息。找到所需的 chart 后,您需要选择它。这里我们点击 MongoDB by Bitnami:

-
现在技术部分可以真正开始了。如果您查看整体描述,您会发现对于任何想要安装任何服务的人来说,都有一个很好的指南。您可以查看不同的选项、配置、参数、如何删除 chart 以及您可能需要了解的任何其他信息。找到 Install 按钮并点击它:

-
这里是安装 MongoDB 所需的一切。首先,您需要 添加仓库 ,然后 安装 chart 。要添加仓库,请打开终端并输入以下命令:
|
1 |
helm repo add bitnami https://charts.bitnami.com/bitnami |
您将看到以下输出:

现在您已经设置好了仓库,您需要安装 chart。从对话框中复制命令,然后运行它:
|
1 |
helm install my-mongodb bitnami/mongodb --version 10.23.10 |
该过程完成后,您就完成了 MongoDB 的全部设置。
步骤 3:管理发布
在软件开发中,发布管理至关重要。总会有需要更新或回滚到以前版本的时候。幸运的是,在 Helm 中管理发布是一个相对简单的过程。Helm 会保留版本号,以便您随时可以回滚到以前的版本。同样,假设您的应用程序已部署并上线,并且您需要进行配置——Helm 也支持这一点。下面我们将介绍一些最佳实践,以帮助您执行这些操作。
-
如何更新应用程序
假设在您的 values.YAML 文件中,您提到需要运行两个应用程序实例。这可能是因为您的应用程序需要高可用性。但后来,您意识到应用程序需要有三个实例。如果没有 Helm,您需要先手动调整应用程序,然后进行配置并重新部署。使用 Helm,您可以先在 values.YAML 文件中进行更改,然后只需执行以下命令。在 Helm 文件所在的目录中,执行以下命令:
|
1 |
helm upgrade <app-name> |
-
如何回滚发布
现在假设您的发布出现故障。也许您配置了错误的端口号或路径。要回滚到任何以前的版本,您只需执行以下命令,然后 Helm 就会将发布恢复到以前的版本:
|
1 |
C:\> helm rollback <release> |
Helm 将处理所有发布和版本控制。这是在 Kubernetes 中使用 Helm 的最大优势之一。要查看任何应用程序的所有发布,请在包含 Helm chart 和 YAML 文件的目录中执行以下命令:
|
1 |
helm history RELEASE |
步骤 4:创建您自己的 Chart
最后,既然您已经熟悉了 Helm 并了解了它的工作原理,现在是时候创建您自己的 chart 了。通过创建您自己的自定义 chart,您可以轻松分发您的应用程序并将其托管在任何仓库中。如果您按照我们下面概述的步骤操作,创建 chart 是一个相当简单的过程。首先,打开终端并执行以下命令:
|
1 |
helm create <chart-name> |
这将创建以您提供的名称命名的目录。我们使用的名称是 my-app. 让我们看看文件夹的内容:
|
1 2 |
cd my-app ls |
您将获得以下结构:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
charts/ templates/ ├─ tests/ │ ├─ test-connection.yaml ├─ deployment.yaml ├─ hpa.yaml ├─ ingress.yaml ├─ NOTES.txt ├─ service.yaml ├─ serviceaccount.yaml ├─ _helpers.tpl ├─ .helmignore ├─ Chart.yaml ├─ values.yaml |
以下是输出内容的摘要:
- charts 文件夹 – 用于添加依赖的 chart。
- templates 文件夹 – 将在集群中部署的配置。
- YAML 文件 – Helm chart 结构的轮廓。
- YAML 文件 – 用于配置 chart 的格式化信息。
接下来,按照以下步骤安装和配置您的 chart:
-
配置镜像和拉取
打开 values.YAML 文件。在这里找到 image 节点。然后,您可以根据需要进行配置。可能的值有 IfNotPresent, Always, Latest。您可以在官方文档中找到完整的值集。
-
覆盖 chart 名称
此步骤是可选的,因此如果您愿意,可以跳过它:

-
服务名称
打开
values.YAML 文件并找到
serviceName。然后,添加所需的名称。在安装 chart 之前准备好一个名称是很有帮助的:

-
安装 chart
最后,要安装 chart,请运行以下命令:
|
1 |
helm install <full name override> <chart name>/ --values <chart name>/values.yaml |
我们建议您在将 chart 部署到集群之前,仔细探索所有可用于配置 chart 的选项。
为什么开发者喜欢 Helm
Helm 正受到需要偶尔启动和停止部署的开发者和 DevOps 专家的青睐。以下是 Helm 的一些主要优势:
-
Helm 简化了部署过程。它没有带来任何需要学习的新东西,而是使现有的 YAML 部署易于被用户配置。
-
Helm 使配置变得易于调整,而无需频繁更改配置(例如集群数量或端口)。用户只需更新 values.YAML 文件中的值。
-
Helm 允许通过将应用程序打包到仓库中来与其他用户共享。
结论
在本教程中,我们介绍了如何在 Windows 上从头开始设置 Helm 包管理器。我们了解了为了利用 Helm 的强大功能而需要清晰理解的不同关键概念。我们还看到了在探索的 Helm 仓库中可用的不同功能。您现在应该对 Helm 驾轻就熟,并在下一个 Kubernetes 项目/部署中实现它。
为了进一步增加您对 Kubernetes 及其功能的了解,您可以查看我们博客中的更多教程:
- 了解 Kubernetes
- 如何在 Ubuntu 18.04 上使用 Kubeadm 创建 Kubernetes 集群
- 在带有 Ubuntu 18.04 的 Kubernetes 集群上部署 PHP 应用程序
祝您计算愉快!
评论
暂无评论。发表第一条评论吧。