helm
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesehelm
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 or set the environment variable (e.g., ). Initialize Helm with if needed, then add repositories and install charts. For custom deployments, create a chart with , edit values.yaml, and install. Always specify the namespace with flag for multi-tenant clusters.
kubectlKUBECONFIGexport KUBECONFIG=~/.kube/confighelm inithelm create mychart--namespace使用 Helm 前,需确保通过 或设置 环境变量(例如 )能访问 Kubernetes。如有需要,先执行 初始化 Helm,然后添加仓库并安装 Charts。对于自定义部署,可使用 创建 Chart,编辑 values.yaml 后进行安装。在多租户集群中,务必使用 标志指定命名空间。
kubectlKUBECONFIGexport KUBECONFIG=~/.kube/confighelm inithelm create mychart--namespaceCommon 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: for inline overrides,
--setfor external YAML file (e.g.,--values).helm install --values values.yaml
- Flags:
- Upgrade a release:
helm upgrade myrelease stable/nginx --set replicas=3- Use for rollback on failure.
--atomic
- Use
- List releases:
helm list --all-namespaces - Delete a release:
helm uninstall myrelease --namespace dev - Search repositories: Code snippet for a basic values.yaml file:
helm search repo nginx
replicaCount: 2
image:
repository: nginx
tag: latestTo add a repository: , then update with .
helm repo add stable https://charts.helm.sh/stablehelm repo updateHelm 通过 CLI 命令操作,无直接 REST API,但会与 Kubernetes API 服务器交互。
- 安装 Chart:
helm install myrelease stable/nginx --set service.type=LoadBalancer --namespace dev- 标志:用于内联覆盖参数,
--set用于指定外部 YAML 文件(例如--values)。helm install --values values.yaml
- 标志:
- 升级发布:
helm upgrade myrelease stable/nginx --set replicas=3- 使用 标志可在失败时自动回滚。
--atomic
- 使用
- 列出发布:
helm list --all-namespaces - 删除发布:
helm uninstall myrelease --namespace dev - 搜索仓库:基础 values.yaml 文件代码片段:
helm search repo nginx
replicaCount: 2
image:
repository: nginx
tag: latest添加仓库:,然后执行 更新仓库。
helm repo add stable https://charts.helm.sh/stablehelm repo updateIntegration Notes
集成说明
Helm integrates with Kubernetes tools; ensure your cluster is accessible via the Kubernetes API. For authentication, use for client certificates or tokens. In CI/CD (e.g., GitHub Actions), run Helm in a container with installed: set env var like . For Terraform integration, use Helm provider: define in HCL as . Avoid conflicts by using Helm's flag with Kubernetes operators.
$KUBECONFIGkubectlexport HELM_REPOSITORY_CONFIG=repo.yamlresource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }--waitHelm 可与 Kubernetes 工具集成;确保你的集群可通过 Kubernetes API 访问。身份验证方面,可使用 提供客户端证书或令牌。在 CI/CD(例如 GitHub Actions)中,可在安装了 的容器中运行 Helm:设置环境变量如 。与 Terraform 集成时,使用 Helm 提供者:在 HCL 中定义为 。使用 Helm 的 标志可避免与 Kubernetes 操作器发生冲突。
$KUBECONFIGkubectlexport HELM_REPOSITORY_CONFIG=repo.yamlresource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }--waitError Handling
错误处理
Common errors include "chart not found" (fix by running ), permission issues (ensure RBAC via ), or failed hooks (check with ). For deployment failures, use to review revisions, then rollback with . If a chart install errors due to invalid values, validate YAML first with a linter like . Always check Kubernetes events with for root causes.
helm repo updatekubectl create clusterrolebindinghelm statushelm history release-namehelm rollback release-name 0yamllint values.yamlkubectl get events --namespace dev常见错误包括“chart not found”(通过执行 修复)、权限问题(通过 配置 RBAC 解决)或钩子执行失败(使用 检查)。对于部署失败,可使用 查看版本记录,然后执行 进行回滚。如果因值无效导致 Chart 安装失败,先使用 等工具验证 YAML 格式。始终通过 查看 Kubernetes 事件以排查根本原因。
helm repo updatekubectl create clusterrolebindinghelm statushelm history release-namehelm rollback release-name 0yamllint values.yamlkubectl get events --namespace devConcrete Usage Examples
实际使用示例
- Install a WordPress chart: Add the repo with , then install:
helm repo add bitnami https://charts.bitnami.com/bitnami. This deploys WordPress with custom credentials; ensurehelm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace webis set as an env var for security.$WP_PASSWORD - Upgrade an existing MongoDB release: First, install with , then upgrade:
helm install mymongo bitnami/mongodb --set auth.enabled=true. This scales resources; monitor withhelm upgrade mymongo bitnami/mongodb --set resources.requests.memory=512Mi --namespace dbto verify.helm status mymongo
- 安装 WordPress Chart:添加仓库 ,然后执行安装:
helm repo add bitnami https://charts.bitnami.com/bitnami。此命令会部署带有自定义凭据的 WordPress;为保障安全,需确保helm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace web已设置为环境变量。$WP_PASSWORD - 升级现有 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(关联集群中类似的技能)