如何通过GitLab Tiller实例删除自动部署的Helm Chart?连接失败求助
解决Helm连接GitLab托管Tiller的问题
先给你捋捋为啥会出现could not find tiller的错误:
首先得确认你用的是Helm 2还是Helm 3——这俩差异很大:
- 要是用的Helm 3:Helm 3早就把Tiller砍掉了,所以
helm init完全是多余操作,直接跑helm list -n gitlab-managed-apps就能看这个命名空间下的Chart,根本不用管Tiller。 - 要是用的Helm 2:你遇到的问题大概率是没在命令里指定对Tiller的命名空间,或者没配置环境变量让Helm默认用这个命名空间。
给你两个解决办法:
- 临时方案:每次执行Helm命令都带上
--tiller-namespace gitlab-managed-apps参数,比如看列表就用:helm list --tiller-namespace gitlab-managed-apps - 永久方案:设置环境变量,以后不用每次加参数:
export TILLER_NAMESPACE=gitlab-managed-apps
另外,你可以先确认下Tiller是不是真在这个命名空间跑着,用kubectl查一下:
kubectl get pods -n gitlab-managed-apps
要是能看到tiller开头的Pod,说明Tiller没问题,就是客户端没指定对命名空间而已。
用GitLab的Tiller实例删除自动部署的Chart
不管你用Helm 2还是3,按下面步骤来就行:
先找到要删的Chart名称:
- Helm 2:
helm list --tiller-namespace gitlab-managed-apps - Helm 3:
helm list -n gitlab-managed-apps
GitLab Auto DevOps部署的Chart名字一般和项目名、环境名挂钩,比如
你的项目名-production这类,找对应就行。- Helm 2:
执行删除命令:
- Helm 2:要彻底删干净的话,用
--purge参数,连Helm的release记录一起删:helm delete --purge <你要删的Chart名> --tiller-namespace gitlab-managed-apps - Helm 3:直接用
uninstall命令就行,默认会删掉所有相关资源,要是想保留release记录就加--keep-history:helm uninstall <你要删的Chart名> -n gitlab-managed-apps
- Helm 2:要彻底删干净的话,用
验证是不是删干净了:
- 再跑一遍
helm list命令,确认目标Chart不在列表里了。 - 用kubectl检查下相关的部署、Pod、服务是不是都没了:
kubectl get deployments,pods,services -n gitlab-managed-apps
- 再跑一遍
对了,要是你是在GitLab CI流水线里执行这些命令,得确保CI Runner有访问K8s集群的权限,而且KUBECONFIG配置正确——一般GitLab Auto DevOps会自动帮你弄好,但要是自定义流水线的话,就得自己检查下环境变量和权限了。
内容的提问来源于stack exchange,提问作者mrvnklm
相关产品推荐
相关产品推荐

