概述
Helm 是在 Kubernetes 集群中部署和管理应用程序的必备工具。您可以从 Chart 仓库搜索、安装应用程序,并通过版本控制进行升级和回滚。这使得将复杂的 Kubernetes 资源打包成一个逻辑单元进行管理成为可能。
主要功能
Helm 提供的主要功能包括:
- Kubernetes 应用程序打包 (Chart)
- Chart 仓库管理和搜索
- 应用程序部署、升级和回滚
- Release 管理和历史记录跟踪
- 通过模板实现灵活配置
安装
Helm 通常不包含在大多数 Linux 发行版的默认安装中,因此需要手动安装。以下是常见的安装方法。
使用脚本安装 (推荐)
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
使用官方安装脚本安装 Helm 是最常见且推荐的方法。
使用 Homebrew 安装 (macOS/Linux)
brew install helm
如果您使用 Homebrew 包管理器,可以使用以下命令安装 Helm。
使用 apt 安装 (Debian/Ubuntu)
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] 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
在基于 Debian 或 Ubuntu 的系统上,您可以使用 apt 包管理器安装 Helm。
主要子命令
Helm 命令通过各种子命令 (subcommands) 实现灵活的 Kubernetes 应用程序管理。以下是一些常用的主要子命令。
Release 管理
Chart 管理
信息查询
生成的命令:
请尝试组合命令。
描述:
`helm` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
以下是一些使用 Helm 主要功能管理 Kubernetes 应用程序的示例。
添加 Chart 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
添加 Bitnami Chart 仓库,以便使用各种应用程序的 Chart。
更新 Chart 仓库
helm repo update
更新所有已添加 Chart 仓库的最新信息。
搜索 Chart
helm search repo nginx
在仓库中搜索包含关键字 'nginx' 的 Chart。
安装 Chart
helm install my-nginx bitnami/nginx
以 'my-nginx' 的名称安装 Bitnami 的 Nginx Chart。
查看 Release 列表
helm list
查看当前 Kubernetes 集群中已部署的所有 Helm Release 列表。
升级 Release
helm upgrade my-nginx bitnami/nginx --set service.type=NodePort
升级现有的 'my-nginx' Release,并将 Nginx 服务类型更改为 NodePort。
卸载 Release
helm uninstall my-nginx
卸载名为 'my-nginx' 的 Release 及其相关的所有 Kubernetes 资源。
提示与注意事项
以下是有效使用 Helm 和避免潜在问题的提示和注意事项。
Helm Chart 开发与验证
开发自己的 Chart 或修改现有 Chart 时的一些有用提示。
- 使用 `helm create <chart-name>` 命令创建基本的 Chart 结构,然后修改 `values.yaml` 和模板文件来定义您的应用程序。
- 使用 `helm lint <chart-path>` 命令验证 Chart 的有效性,并提前发现潜在的错误或警告。这有助于在部署前解决问题。
安全的 Release 管理
减少部署和升级过程中潜在风险的方法。
- 在运行 `helm install` 或 `helm upgrade` 时,同时使用 `--dry-run --debug` 选项,可以在实际部署前预览渲染后的 YAML manifest。这对于提前发现意外更改或错误非常有用。
- 从 Helm 3 开始,卸载 Release 不需要 `--purge` 选项,默认会移除所有资源。如果您想保留 Release 历史记录,可以使用 `helm uninstall --keep-history <release-name>`。
指定命名空间
将 Release 部署到特定的 Kubernetes 命名空间的方法。
- 说明: 在运行 `helm install` 或 `helm upgrade` 时,使用 `--namespace <namespace-name>` 选项可以将 Release 部署到指定的命名空间。如果该命名空间不存在,可以添加 `--create-namespace` 选项来自动创建它。