helm v3 是唯一应采用的部署方式,已彻底移除有安全风险的 tiller 组件,所有操作由客户端完成;需通过 helm version 确认无 tiller 字样且为 v3.x 版本,禁用 helm init 等 v2 命令,并务必添加并更新仓库、校验命名空间权限。

Helm v3 是当前唯一应采用的部署方式,v2 的 tiller 组件已彻底废弃,任何仍尝试部署 tiller 的操作都会失败或引入严重权限与安全风险。
确认使用 Helm v3 而非 v2
v2 架构依赖服务端组件 tiller,需在集群内部署、配置 RBAC、处理镜像拉取失败(如 gcr.io/kubernetes-helm/tiller 在国内不可达)、且存在长期未修复的权限提升漏洞。v3 完全移除了 tiller,所有逻辑由客户端完成,直接调用 Kubernetes API,安全、轻量、无需额外集群权限。
- 运行
helm version,输出中不含Tiller字样,且Client版本为v3.x(如v3.14.4)才属合规 - 若看到
Error: could not find a ready tiller pod或helm init命令,说明你正在误用 v2 流程 - 旧脚本
get_helm.sh默认可能拉取 v2,务必核对下载 URL 是否指向get-helm-3
二进制安装 Helm v3(推荐)
绕过包管理器和网络代理干扰,直接获取可信二进制,适用于所有 Linux/macOS 环境。
针对 Kubernetes 仪表板和 Web UI 的浏览器自动化。适用于与 Kubernetes Dashboard、Grafana、ArgoCD UI 或其他 Web 界面交互。需要设置 MCP_BROWSER_ENABLED=true。
- 下载最新稳定版(以 2026 年常用版本为例):
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash - 或手动下载解压:
wget https://get.helm.sh/helm-v3.14.4-linux-amd64.tar.gz && tar -zxvf helm-v3.14.4-linux-amd64.tar.gz && sudo mv linux-amd64/helm /usr/local/bin/ - 验证:
helm version --short应输出类似v3.14.4+g65a31e8 - 不需
helm init,不需创建ServiceAccount或ClusterRoleBinding—— 这些全是 v2 遗留动作
添加并更新 Chart 仓库(关键前置步骤)
默认 Helm v3 不带任何仓库,helm search 或 helm install 会报 “no repositories configured” 错误。必须显式添加仓库并更新索引。
- 添加官方仓库(已归档,仅作兼容参考):
helm repo add stable https://charts.helm.sh/stable(注意:该仓库已于 2022 年停更,不建议新项目使用) - 添加活跃仓库(推荐):
helm repo add bitnami https://charts.bitnami.com/bitnami或helm repo add oci://registry-1.docker.io/bitnamicharts(OCI 模式) - 强制更新本地索引:
helm repo update;若某仓库超时,可单独更新:helm repo update bitnami - 查看已配置仓库:
helm repo list;搜索 chart:helm search repo nginx(不是helm search hub,后者依赖外部服务且不稳定)
首次安装前必须检查的权限与上下文
Helm v3 本身无权限问题,但它完全复用 kubectl 的认证与命名空间上下文。很多 “install 失败” 实际是 kubeconfig 权限不足或目标 namespace 不存在。
- 确保
kubectl get ns能列出目标命名空间(如default),否则helm install -n myns会报namespaces "myns" not found - 确保当前
kubeconfig用户对目标 namespace 有create权限(至少需editrole);若用 serviceaccount,需确认其绑定的 role 允许deployments、services等资源操作 - 避免在
kube-system外随意使用--create-namespace:它只创建 namespace,不授予权限,后续资源创建仍可能因 RBAC 拒绝而失败 - 调试时加
--debug --dry-run=client可预览渲染出的 YAML,确认模板变量是否被正确替换,避免因values.yaml错误导致静默失败
最常被跳过的其实是仓库索引更新和命名空间权限校验 —— 这两个点卡住的人远多于安装本身。v3 的简洁性恰恰要求你更清楚自己要往哪部署、有没有权限部署。










