1. Problema
Cuando se usa para helm list
ver aplicaciones instaladas localmente, se informa de un error
# helm list
Error: Get https://10.254.0.1:443/api/v1/namespaces/kube-system/configmaps?labelSelector=OWNER%!D(MISSING)TILLER: dial tcp 10.254.0.1:443: no route to host
Usar la versión de helm es normal, pero usar la lista de helm para informar un error.
2. Resuelve
La razón es que los pods de Tiller no se pueden conectar al apiserver k8s. La solución es dejar de usar la cuenta de servicio creada por usted mismo, sino usar el sistema predeterminado.
// helm初始化
# helm init --upgrade -i registry.ctzcdn.com/devops/tiller:v2.12.0 --tiller-namespace=kube-system --service-account default
// 给serviceaccount绑定cluster-admin规则
# kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:default
Si es un tiller que ya se está ejecutando, debe modificar el valor de spec.template.spec.serviceAccount en tiller-deploy.yaml al valor predeterminado.
# kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"default"}}}}'
3. Enlace de referencia
https://github.com/helm/helm/issues/2464