引言
Helm 是 Kubernetes 的包管理器,它如同 Linux 系统中的 apt 或 yum,能够帮助开发者和运维人员轻松地查找、分享和使用为 Kubernetes 构建的软件。通过将一组相关的 Kubernetes 资源打包成一个称为 "Chart" 的单元,Helm 极大地简化了复杂应用的部署、升级和管理过程。
本指南将从 Helm 的安装开始,逐步深入到其核心概念和常用命令,为你提供一个全面而实用的 Helm 使用手册。
一、Helm 的安装
在 Linux 系统上安装 Helm 非常直接。以下步骤以 Helm 3.8.0 为例:
1. 下载 Helm 二进制文件
从 Helm 的官方发布页面或镜像站点下载适合你系统的二进制压缩包。
1 | # 从官方推荐的源下载 |
2. 解压文件
将下载的压缩包解压。
1 | tar -zxvf helm-v3.8.0-linux-amd64.tar.gz |
3. 移动到系统路径并授权
将解压出的 helm 可执行文件移动到系统的 PATH 目录中(如 /usr/local/bin),并赋予其执行权限。
1 | sudo mv linux-amd64/helm /usr/local/bin/helm |
4. 验证安装
执行 helm version 命令,如果能看到版本信息,则表示安装成功。
1 | helm version |
二、核心概念:Chart 与 Repository
- Chart: Helm 的打包格式,它包含了一组用于描述 Kubernetes 资源的模板文件和默认值。一个 Chart 可以简单到只包含一个
nginxPod,也可以复杂到包含一个完整的 Web 应用技术栈。 - Repository (Repo): 用于存储和分发 Chart 的仓库。你可以添加社区的公共仓库,也可以创建自己的私有仓库。
三、仓库 (Repository) 管理
管理 Chart 仓库是使用 Helm 的第一步。
1. 添加仓库
添加一个新的 Chart 仓库。为了加速访问,推荐使用国内镜像。
1 | # 添加阿里云的 Kubernetes Chart 仓库并命名为 stable |
2. 查看所有仓库
列出所有已添加的仓库。
1 | helm repo list |
3. 更新仓库
从所有仓库中获取最新的 Chart 信息。在搜索或安装前,最好先执行此命令。
1 | helm repo update |
4. 删除仓库
如果不再需要某个仓库,可以将其删除。
1 | helm repo remove stable |
四、应用 (Release) 管理
一个 "Release" 是一个 Chart 在 Kubernetes 集群中的运行实例。
1. 搜索应用
在已添加的仓库中搜索 Chart。
1 | # 搜索名为 "rancher" 的 Chart |
2. 下载 Chart
有时你可能需要先下载 Chart 到本地进行修改或审查。
1 | # 下载指定版本的 Rancher Chart 压缩包到当前目录 |
3. 安装应用 (install)
使用 helm install 命令在集群中部署一个 Chart。
1 | # 语法: helm install [RELEASE_NAME] [CHART_NAME] |
4. 升级应用 (upgrade)
当 Chart 更新或你需要修改配置时,使用 helm upgrade。--install 参数表示如果 Release 不存在,则执行安装操作。
1 | # 升级 rancher release,并设置新的主机名和 TLS 来源 |
--set <key>=<value>: 在命令行中直接覆盖values.yaml文件中的配置项。
5. 查看已部署的应用
列出指定命名空间或所有命名空间中的 Release。
1 | # 查看 cattle-system 命名空间下的所有 release |
6. 查看应用状态
获取一个 Release 的详细状态信息。
1 | helm status rancher -n cattle-system |
7. 卸载应用 (uninstall)
从集群中删除一个 Release,并清除其所有相关的 Kubernetes 资源。
1 | helm uninstall rancher -n cattle-system |
8. 回滚应用 (rollback)
如果一次升级出现问题,可以快速回滚到之前的版本。
1 | # 查看 rancher release 的历史版本 |
总结
Helm 通过其强大的打包和模板能力,极大地简化了 Kubernetes 应用的生命周期管理。掌握 Helm 的核心命令是每一位 Kubernetes 从业者的必备技能。
- 官方文档: Helm 命令大全 是学习和查询所有命令最权威的参考。
