Helm 是一款专为 Kubernetes 设计的软件包管理器,可让用户管理称为 “图表 ”的预配置 Kubernetes 资源。图表是描述一组相关 Kubernetes 资源的 YAML 文件集合。


下面的示例说明了如何使用 Helm 图表来部署一个简单的 NGINX 服务器。

【代码清单】

# Add the official Helm stable repository
helm repo add stable https://charts.helm.sh/stable
# Update your Helm repositories
helm repo update
# Search for the nginx Chart in the stable repository
helm search repo nginx
# Install the nginx Chart
helm install my-nginx stable/nginx
# Check the deployment
kubectl get pods

【执行结果】

NAME: my-nginx
LAST DEPLOYED: Tue Aug 20 15:32:15 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NAME            READY  STATUS  RESTARTS  AGE
my-nginx-6dff6c64ff-8f7h7  1/1   Running  0     1m

Helm 通过将多个 Kubernetes 资源打包成一个单元(称为 “图表”),简化了 Kubernetes 应用程序的部署。每个 Chart 都是描述一组相关 Kubernetes 资源的文件集合。当你使用 helm install 命令部署 Chart 时,Helm 会将 Chart 中描述的所有 Kubernetes 资源一次性发送到 Kubernetes 集群。这种版本化还能确保你在不同环境中部署相同的应用配置,而无需手动管理Kubernetes YAML文件。Helm还提供模板渲染等功能,允许根据输入值动态配置Kubernetes资源。这使得 Helm 成为管理具有许多可配置参数的复杂 Kubernetes 应用程序的强大工具。

【小知识】

Helm 最初由 DeisLabs 开发,后来被微软收购。此后,它成为 Kubernetes 生态系统中使用最广泛的工具之一。Helm 经常被称为 Kubernetes 的 “apt ”或 “yum”,类似于 Linux 软件包管理器。