Helm 是 Kubernetes 的包管理工具,简化了在 Kubernetes 上安装、更新、管理应用的流程。通过 Helm,开发者可以快速部署复杂的应用程序,类似于使用 apt、yum 或 Homebrew 安装软件包。在本文中,我们将详细介绍如何安装和配置 Helm,并将其连接到 Kubernetes 集群。
1. 安装 Helm
在安装 Helm 之前,确保已经有一个可用的 Kubernetes 集群,并且可以通过 kubectl
访问。Helm 3 不再需要 Tiller 服务端组件,因此安装变得更加简单。
1.1 使用脚本快速安装
Helm 官方提供了一个安装脚本,使用该脚本可以快速安装最新版本的 Helm:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
1.2 使用包管理器安装
如果你使用的是 macOS、Ubuntu 或其他 Linux 发行版,可以通过包管理器进行安装:
macOS 用户
使用 Homebrew 安装:
brew install helm
Ubuntu 或 Debian 用户
先更新软件包列表,然后通过 snap
安装 Helm:
sudo apt update
sudo snap install helm --classic
CentOS 或 Fedora 用户
使用 dnf
安装 Helm:
sudo dnf install helm
1.3 验证 Helm 安装
安装完成后,使用以下命令检查 Helm 是否安装成功:
helm version
如果看到类似如下的版本信息,说明 Helm 已成功安装:
version.BuildInfo{Version:"v3.8.0", GitCommit:"...", GitTreeState:"clean", GoVersion:"go1.17"}
2. 验证 kubectl
配置
在连接 Helm 与 Kubernetes 集群之前,确保 kubectl
已正确配置,并且可以访问 Kubernetes 集群。你可以通过以下命令检查集群状态:
kubectl cluster-info
如果集群正常运行,输出会显示集群的相关信息。如果未配置 kubectl
,请参考 官方文档 配置 Kubernetes 集群访问。
3. 使用 Helm 连接 Kubernetes 集群
在 Helm 3 中,不再需要安装 Tiller,Helm 客户端可以直接与 Kubernetes API 交互。只要 kubectl
配置正确,Helm 就可以直接连接到 Kubernetes 集群。
3.1 验证 Helm 与集群连接
可以使用以下命令检查 Helm 是否已连接到 Kubernetes 集群:
helm list
如果 Helm 正常连接集群,但没有部署任何应用,该命令会返回空列表。如果 Helm 未能连接到集群,检查 kubectl
配置和集群状态。
4. 添加 Helm 仓库
Helm 仓库中包含各种应用程序的打包 chart。你可以通过添加官方或第三方的 Helm 仓库来部署应用。
4.1 添加官方 Helm 仓库
Helm 官方提供了 stable
仓库,里面包含许多常用应用:
helm repo add stable https://charts.helm.sh/stable
helm repo update
4.2 查看可用 Chart
添加仓库后,你可以使用以下命令查看仓库中有哪些可用的 Chart:
helm search repo stable
5. 使用 Helm 安装应用
一旦 Helm 与 Kubernetes 集群连接并添加了仓库,你就可以安装应用了。Helm 会自动创建所需的 Kubernetes 资源,如 Pod、Service 等。我们以 NGINX Ingress 控制器为例,展示如何使用 Helm 安装应用。
5.1 安装 NGINX Ingress 控制器
使用 Helm 安装 NGINX:
helm install my-nginx stable/nginx-ingress
my-nginx
是 release 名称,可以自定义为其他名称。stable/nginx-ingress
是从 Helm 仓库安装的 Chart。
5.2 查看部署状态
使用以下命令查看 Helm 安装的应用状态:
helm list
这会列出所有 Helm 部署的应用及其状态。
6. 验证应用部署
使用 kubectl
命令查看 Kubernetes 集群中的资源。查看 Pod 运行状态:
kubectl get pods
所有 Pod 应该显示为 Running
状态,表明应用已经成功部署。
7. 删除 Helm 部署
如果需要删除通过 Helm 安装的应用,可以运行以下命令:
helm uninstall my-nginx
该命令会删除 Helm 部署的所有 Kubernetes 资源。
总结
通过 Helm,你可以轻松管理 Kubernetes 上的复杂应用,快速部署、升级、回滚及删除应用。本文详细介绍了如何安装 Helm,验证与 Kubernetes 的连接,并使用 Helm 部署和管理应用。Helm 让 Kubernetes 集群中的应用管理变得更加高效和便捷。