Проблема с аутентификацией при установке чего-либо

#kubernetes-helm #kubernetes-ingress

#kubernetes-helm #kubernetes-вход

Вопрос:

Команда завершается с ошибкой из-за проблем с учетными данными, но при тестировании с kubectl get nodes все выглядит нормально.

Вывод helm install :

 ⋊> ~/t/mtltech on master ⨯ helm install --name nginx-ingress stable/nginx-ingress --set rbac.create=true                                                                                                   00:31:41
Error: the server has asked for the client to provide credentials
  

Вывод kubectl get nodes :

 ⋊> ~/t/mtltech on master ⨯ kubectl get nodes                                                                                                                                                               00:37:41
NAME                                       STATUS    ROLES     AGE       VERSION
gke-mtltech-default-pool-977ee0b2-5lmi   Ready     <none>    7h        v1.11.7-gke.4
gke-mtltech-default-pool-977ee0b2-hi4v   Ready     <none>    7h        v1.11.7-gke.4
gke-mtltech-default-pool-977ee0b2-mjiv   Ready     <none>    7h        v1.11.7-gke.4
  

Вывод helm version :

 Client: amp;version.Version{SemVer:"v2.13.0", GitCommit:"79d07943b03aea2b76c12644b4b54733bc5958d6", GitTreeState:"clean"}
Server: amp;version.Version{SemVer:"v2.13.0", GitCommit:"79d07943b03aea2b76c12644b4b54733bc5958d6", GitTreeState:"clean"}
  

Вывод kubectl version :

 Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11 ", GitVersion:"v1.11.7-gke.4", GitCommit:"618716cbb236fb7ca9cabd822b5947e298ad09f7", GitTreeState:"clean", BuildDate:"2019-02-05T19:22:29Z", GoVersion:"go1.10.7b4", Compiler:"gc", Platform:"linux/amd64"}
  

Облачный провайдер: Google Cloud

Я несколько раз пытался сбросить его с помощью rm -rf ~/.helm amp;amp; helm init --service-account tiller , но это ничего не меняет.

Есть идеи? Спасибо.

Ответ №1:

Проблема здесь в Tiller. Я не знаю, как вы развернули Helm и Tiller, но ошибка была там.

Я использовал эту диаграмму, и все работает правильно, затем я удалил свою учетную запись службы и привязку роли кластера, и я столкнулся с той же ошибкой — удаление только привязки роли кластера выдает ошибку:

Error: release nginx-ingress failed: namespaces "default" is forbidden: User "system:serviceaccount:kube-system:tiller" cannot get namespaces in the namespace "default"

Таким образом, ошибка связана с отсутствием учетной записи службы или с обоими.

Решение для этого: rm -rf ~/.helm

kubectl create serviceaccount tiller --namespace kube-system

 kubectl create clusterrolebinding tiller-cluster-rule 
 --clusterrole=cluster-admin 
 --serviceaccount=kube-system:tiller
  

helm init --service-account=tiller

kubectl get pods -n kube-system

проверьте полное имя модуля tiller:

kubectl delete pod -n kube-system tiller-deploy-xxx

Подождите, пока модуль tiller будет повторно загружен, и установите свою схему управления:

helm install --name nginx-ingress stable/nginx-ingress --set rbac.create=true