如何从Kubernetes集群中删除Tiller

63
我的kubernetes集群中,Tiller不能正常工作。我想删除所有与Tiller相关的内容。Tiller(2.5.1)有1个Deployment、1个ReplicaSet和1个Pod。
我已经尝试了以下命令:kubectl delete deployment tiller-deploy -n kube-system
结果是“deployment "tiller-deploy" deleted”,但是tiller-deploy立即被重新创建,kubectl get deployments -n kube-system显示tiller-deploy再次运行。
我还尝试了以下命令:kubectl delete rs tiller-deploy-393110584 -n kube-system
结果是“replicaset "tiller-deploy-2745651589" deleted”,但是tiller-deploy-2745651589立即被重新创建,kubectl get rs -n kube-system显示tiller-deploy-2745651589再次运行。
正确的永久删除Tiller的方法是什么?

请问您能否将Nickolay的回答设为已采纳? - AFP_555
7个回答

91

从 Kubernetes 集群中卸载 Tiller 的方法:

helm reset

删除 Kubernetes 集群中的失败 tiller:

helm reset --force

我们能否在不删除已部署的Helm Charts的情况下删除Tiller?我想一旦部署了Chart就摆脱Tiller,因为保持运行Tiller是不安全的。 - Ijaz Ahmad
1
@IjazAhmadKhan 这是一个奇怪的用例,但你可以将 tiller 部署缩小到 0。 - AFP_555
我已经通过使用低权限角色运行tiller来解决了这个问题。 - Ijaz Ahmad
使用 --force 命令来移除 Tiller。发布将不会被删除。 - armourbear

37
如果您想从集群中删除 tiller,最干净的方法是删除安装过程中部署的所有组件。
如果您已经知道 tiller 部署的名称空间:
$ kubectl delete all -l app=helm -n kube-system
pod "tiller-deploy-8557598fbc-5b2g7" deleted
service "tiller-deploy" deleted
deployment.apps "tiller-deploy" deleted
replicaset.apps "tiller-deploy-75f6c87b87" deleted
replicaset.apps "tiller-deploy-8557598fbc" deleted

注意该命令将删除指定命名空间内所有带有相应标签的组件(包括复制控制器、部署、服务等)。其中app是一个标签,用于识别所有组件。

您可以使用描述 Pod 的命令来验证这些标签:

$ kubectl describes pod tiller-deploy-8557598fbc-5b2g7 -n kube-system
Name: tiller-deploy-8557598fbc-5b2g7
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: srvlpi03 / 192.168.1.133
Start Time: Tue, 20 Aug 2019 15:51:03 -0400
Labels: app = helm
        name = tiller
        pod-template-hash = 8557598fbc

10

要完全卸载tiller,您必须卸载三个东西:

  1. Deployment 部署
  2. Service 服务
  3. Secret 秘密
    kubectl delete deployment -n some-namespace tiller-deploy 
    kubectl delete svc -n some-namespace tiller-deploy 
    kubectl delete secret -n some-namespace tiller-secret

如果启用了TLS,请务必备份密钥,因为它存储了所有证书。


2

You can also try below command

kubectl delete deployment tiller-deploy --namespace kube-system

1
原来它正在作为副本集运行:
kubectl delete replicasets -n kube-system tiller-deploy-6fdb84698b

这对我很有帮助。

helm reset --force 没有删除 Tiller。


0

Kubectl get hpa --all-namespaces(或者-n kube-system)

在正常的tiller部署中,它们使用副本集。对于您的设置,可能会有一个HorizontalPodAutoscaler对象,该对象针对tiller的副本集。

您可以首先删除HPA,然后删除相关的replicasets,pods,configmaps,或者您可以使用“helm reset”命令重置helm。


0
不要忘记
kubectl -n kube-system delete service tiller-deploy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接