关于 helm
helm 是用于 Kubernetes 的包管理器,面向部署和维护集群应用的开发与运维团队。它通过 Chart、模板和版本化仓库管理应用,并支持升级与回滚。
主要功能
- 01使用 Chart 打包应用
- 02模板与 values 文件定制部署
- 03版本化 Chart 仓库
- 04管理发布升级与回滚
- 05通过 Kubernetes RBAC 控制操作
适用场景
- 01在 Kubernetes 集群安装应用
- 02为不同环境定制部署参数
- 03在 CI/CD 工作流中发布微服务
- 04回滚失败的应用发布
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill helm安装后在 Claude Code 中输入/helm确认已加载。
详细介绍
helm
用途
Helm 是 Kubernetes 的包管理器,用户可以借助 chart 定义、安装和升级应用。它将 Kubernetes 资源打包成可复用的模板,从而简化资源管理。
适用场景
在 Kubernetes 集群上部署和管理应用时使用 Helm,尤其适合处理多个环境、管理依赖版本或自动化部署。它非常适用于涉及微服务的 DevOps 工作流,例如在 CI/CD 流水线中为可扩展应用提供一致的打包方式。
主要功能
- 将应用打包为 chart,其中包含 YAML 清单和模板。
- 支持 chart 仓库,可存储和检索带版本的 chart。
- 提供模板引擎,可通过 values 文件自定义部署(例如,使用 YAML 格式覆盖参数)。
- 提供回滚和升级功能,用于管理发布生命周期。
- 与 Kubernetes RBAC 集成,确保操作安全。
使用模式
使用 Helm 前,先确保可以通过 kubectl 访问 Kubernetes,或设置 KUBECONFIG 环境变量(例如,export KUBECONFIG=~/.kube/config)。如有需要,使用 helm init 初始化 Helm,然后添加仓库并安装 chart。对于自定义部署,可使用 helm create mychart 创建 chart,编辑 values.yaml,然后进行安装。在多租户集群中,始终使用 --namespace 标志指定命名空间。
常用命令/API
Helm 通过 CLI 命令运行;它没有直接的 REST API,但会与 Kubernetes API server 交互。
- 安装 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 更新。
集成说明
Helm 与 Kubernetes 工具集成;请确保集群可通过 Kubernetes API 访问。进行身份验证时,使用 $KUBECONFIG 提供客户端证书或令牌。在 CI/CD 中(例如,GitHub Actions),使用安装了 kubectl 的容器运行 Helm:设置类似 export HELM_REPOSITORY_CONFIG=repo.yaml 的环境变量。与 Terraform 集成时,使用 Helm provider:在 HCL 中定义为 resource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }。使用 Helm 的 --wait 标志,避免与 Kubernetes operator 发生冲突。
错误处理
常见错误包括“未找到 chart”(运行 helm repo update 修复)、权限问题(通过 kubectl create clusterrolebinding 确保 RBAC 配置正确)或 hook 失败(使用 helm status 检查)。对于部署失败,使用 helm history release-name 查看修订记录,然后使用 helm rollback release-name 0 回滚。如果 chart 安装因 values 无效而报错,先使用 yamllint values.yaml 等 lint 工具验证 YAML。始终使用 kubectl get events --namespace dev 检查 Kubernetes 事件,以查明根本原因。
具体使用示例
- 安装 WordPress 图表:使用
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设置为环境变量。 - 升级现有的 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进行监控和验证。
图关系
- 相关于:kubernetes(部署的核心依赖)
- 同处于:devops-sre 集群(与 kubectl、terraform 等工具共享)
- 标记为:helm、kubernetes、package-manager(关联集群中的类似技能)