helm

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

helm

helm

Purpose

用途

Helm is a package manager for Kubernetes, enabling users to define, install, and upgrade applications using charts. It simplifies managing Kubernetes resources by packaging them into reusable templates.
Helm 是 Kubernetes 的包管理器,允许用户使用 Charts 定义、安装和升级应用程序。它通过将 Kubernetes 资源打包为可复用模板,简化了资源管理工作。

When to Use

适用场景

Use Helm for deploying and managing applications on Kubernetes clusters, especially when handling multiple environments, versioning dependencies, or automating deployments. Ideal for DevOps workflows involving microservices, where consistent application packaging is needed, such as in CI/CD pipelines for scalable apps.
当你需要在 Kubernetes 集群上部署和管理应用程序时使用 Helm,尤其是在处理多环境、版本化依赖或自动化部署的场景中。它非常适合涉及微服务的 DevOps 工作流,这类场景需要一致的应用打包,例如可扩展应用的 CI/CD 流水线。

Key Capabilities

核心功能

  • Package applications as charts, which are directories containing YAML manifests and templates.
  • Support for chart repositories, allowing versioned storage and retrieval.
  • Templating engine to customize deployments with values files (e.g., YAML format for overriding parameters).
  • Rollback and upgrade features for managing release lifecycles.
  • Integration with Kubernetes RBAC for secure operations.
  • 将应用程序打包为 Charts(包含 YAML 清单和模板的目录)。
  • 支持 Chart 仓库,实现版本化存储和检索。
  • 模板引擎支持通过 values 文件(例如用于覆盖参数的 YAML 格式)自定义部署。
  • 提供回滚和升级功能,用于管理发布生命周期。
  • 与 Kubernetes RBAC 集成,保障操作安全性。

Usage Patterns

使用模式

To use Helm, first ensure Kubernetes access via
kubectl
or set the
KUBECONFIG
environment variable (e.g.,
export KUBECONFIG=~/.kube/config
). Initialize Helm with
helm init
if needed, then add repositories and install charts. For custom deployments, create a chart with
helm create mychart
, edit values.yaml, and install. Always specify the namespace with
--namespace
flag for multi-tenant clusters.
使用 Helm 前,需确保通过
kubectl
或设置
KUBECONFIG
环境变量(例如
export KUBECONFIG=~/.kube/config
)能访问 Kubernetes。如有需要,先执行
helm init
初始化 Helm,然后添加仓库并安装 Charts。对于自定义部署,可使用
helm create mychart
创建 Chart,编辑 values.yaml 后进行安装。在多租户集群中,务必使用
--namespace
标志指定命名空间。

Common Commands/API

常用命令/API

Helm operates via CLI commands; no direct REST API exists, but it interacts with Kubernetes API server.
  • Install a chart:
    helm install myrelease stable/nginx --set service.type=LoadBalancer --namespace dev
    • Flags:
      --set
      for inline overrides,
      --values
      for external YAML file (e.g.,
      helm install --values values.yaml
      ).
  • Upgrade a release:
    helm upgrade myrelease stable/nginx --set replicas=3
    • Use
      --atomic
      for rollback on failure.
  • List releases:
    helm list --all-namespaces
  • Delete a release:
    helm uninstall myrelease --namespace dev
  • Search repositories:
    helm search repo nginx
    Code snippet for a basic values.yaml file:
replicaCount: 2
image:
  repository: nginx
  tag: latest
To add a repository:
helm repo add stable https://charts.helm.sh/stable
, then update with
helm repo update
.
Helm 通过 CLI 命令操作,无直接 REST API,但会与 Kubernetes API 服务器交互。
  • 安装 Chart:
    helm install myrelease stable/nginx --set service.type=LoadBalancer --namespace dev
    • 标志:
      --set
      用于内联覆盖参数,
      --values
      用于指定外部 YAML 文件(例如
      helm install --values values.yaml
      )。
  • 升级发布:
    helm upgrade myrelease stable/nginx --set replicas=3
    • 使用
      --atomic
      标志可在失败时自动回滚。
  • 列出发布:
    helm list --all-namespaces
  • 删除发布:
    helm uninstall myrelease --namespace dev
  • 搜索仓库:
    helm search repo nginx
    基础 values.yaml 文件代码片段:
replicaCount: 2
image:
  repository: nginx
  tag: latest
添加仓库:
helm repo add stable https://charts.helm.sh/stable
,然后执行
helm repo update
更新仓库。

Integration Notes

集成说明

Helm integrates with Kubernetes tools; ensure your cluster is accessible via the Kubernetes API. For authentication, use
$KUBECONFIG
for client certificates or tokens. In CI/CD (e.g., GitHub Actions), run Helm in a container with
kubectl
installed: set env var like
export HELM_REPOSITORY_CONFIG=repo.yaml
. For Terraform integration, use Helm provider: define in HCL as
resource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }
. Avoid conflicts by using Helm's
--wait
flag with Kubernetes operators.
Helm 可与 Kubernetes 工具集成;确保你的集群可通过 Kubernetes API 访问。身份验证方面,可使用
$KUBECONFIG
提供客户端证书或令牌。在 CI/CD(例如 GitHub Actions)中,可在安装了
kubectl
的容器中运行 Helm:设置环境变量如
export HELM_REPOSITORY_CONFIG=repo.yaml
。与 Terraform 集成时,使用 Helm 提供者:在 HCL 中定义为
resource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }
。使用 Helm 的
--wait
标志可避免与 Kubernetes 操作器发生冲突。

Error Handling

错误处理

Common errors include "chart not found" (fix by running
helm repo update
), permission issues (ensure RBAC via
kubectl create clusterrolebinding
), or failed hooks (check with
helm status
). For deployment failures, use
helm history release-name
to review revisions, then rollback with
helm rollback release-name 0
. If a chart install errors due to invalid values, validate YAML first with a linter like
yamllint values.yaml
. Always check Kubernetes events with
kubectl get events --namespace dev
for root causes.
常见错误包括“chart not found”(通过执行
helm repo update
修复)、权限问题(通过
kubectl create clusterrolebinding
配置 RBAC 解决)或钩子执行失败(使用
helm status
检查)。对于部署失败,可使用
helm history release-name
查看版本记录,然后执行
helm rollback release-name 0
进行回滚。如果因值无效导致 Chart 安装失败,先使用
yamllint values.yaml
等工具验证 YAML 格式。始终通过
kubectl get events --namespace dev
查看 Kubernetes 事件以排查根本原因。

Concrete Usage Examples

实际使用示例

  1. Install a WordPress chart: Add the repo with
    helm repo add bitnami https://charts.bitnami.com/bitnami
    , then install:
    helm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace web
    . This deploys WordPress with custom credentials; ensure
    $WP_PASSWORD
    is set as an env var for security.
  2. Upgrade an existing MongoDB release: First, install with
    helm install mymongo bitnami/mongodb --set auth.enabled=true
    , then upgrade:
    helm upgrade mymongo bitnami/mongodb --set resources.requests.memory=512Mi --namespace db
    . This scales resources; monitor with
    helm status mymongo
    to verify.
  1. 安装 WordPress Chart:添加仓库
    helm repo add bitnami https://charts.bitnami.com/bitnami
    ,然后执行安装:
    helm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace web
    。此命令会部署带有自定义凭据的 WordPress;为保障安全,需确保
    $WP_PASSWORD
    已设置为环境变量。
  2. 升级现有 MongoDB 发布:先执行安装
    helm install mymongo bitnami/mongodb --set auth.enabled=true
    ,然后执行升级:
    helm upgrade mymongo bitnami/mongodb --set resources.requests.memory=512Mi --namespace db
    。此命令会扩容资源;可通过
    helm status mymongo
    验证升级结果。

Graph Relationships

关联关系

  • Related to: kubernetes (core dependency for deployments)
  • Co-located in: devops-sre cluster (shared with tools like kubectl, terraform)
  • Tagged with: helm, kubernetes, package-manager (links to similar skills in the cluster)
  • 依赖:kubernetes(部署的核心依赖)
  • 共存于:devops-sre 集群(与 kubectl、terraform 等工具共享)
  • 标签:helm, kubernetes, package-manager(关联集群中类似的技能)