mcpField
H
helm

helm

github.com/alphaonedev云与 DevOps45 次安装
代码仓库

关于 helm

helm 是用于 Kubernetes 的包管理器,面向部署和维护集群应用的开发与运维团队。它通过 Chart、模板和版本化仓库管理应用,并支持升级与回滚。

主要功能

  1. 01使用 Chart 打包应用
  2. 02模板与 values 文件定制部署
  3. 03版本化 Chart 仓库
  4. 04管理发布升级与回滚
  5. 05通过 Kubernetes RBAC 控制操作

适用场景

  1. 01在 Kubernetes 集群安装应用
  2. 02为不同环境定制部署参数
  3. 03在 CI/CD 工作流中发布微服务
  4. 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 事件,以查明根本原因。

具体使用示例

  1. 安装 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 设置为环境变量。
  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 进行监控和验证。

图关系

  • 相关于:kubernetes(部署的核心依赖)
  • 同处于:devops-sre 集群(与 kubectl、terraform 等工具共享)
  • 标记为:helm、kubernetes、package-manager(关联集群中的类似技能)

评论

支持 Markdown