Kubeadm: falha ao executar Kubelet: não é possível criar solicitação de assinatura de certificado: não autorizado

Criado em 14 mai. 2018  ·  3Comentários  ·  Fonte: kubernetes/kubeadm

Eu tenho um cluster K8s em execução em um provedor de nuvem OpenStack.

O cluster é configurado usando a ferramenta kubeadm que contém um nó mestre e um nó escravo.

Estou tentando adicionar outro nó de trabalho usando o comando kubeadm join, o comando mostra uma resposta positiva informando que o nó foi adicionado com sucesso, mas não consigo encontrá-lo usando o comando kubectl get nodes .

Eu investiguei e descobri que o kubelet no novo nó escravo não está sendo executado mostrando cannot create certificate signing request: Unauthorized .

-- The start-up result is done.
May 14 12:15:33 vm1 kubelet[17678]: W0514 12:15:33.715964   17678 cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
May 14 12:15:33 vm1 kubelet[17678]: W0514 12:15:33.738398   17678 hostport_manager.go:68] The binary conntrack is not installed, this can cause failures in network connection cleanup.
May 14 12:15:33 vm1 kubelet[17678]: I0514 12:15:33.738669   17678 server.go:376] Version: v1.10.1
May 14 12:15:33 vm1 kubelet[17678]: I0514 12:15:33.738913   17678 feature_gate.go:226] feature gates: &{{} map[]}
May 14 12:15:33 vm1 kubelet[17678]: I0514 12:15:33.739222   17678 plugins.go:89] No cloud provider specified.
May 14 12:15:33 vm1 kubelet[17678]: F0514 12:15:33.784257   17678 server.go:233] failed to run Kubelet: cannot create certificate signing request: Unauthorized
May 14 12:15:33 vm1 systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a
May 14 12:15:33 vm1 systemd[1]: kubelet.service: Unit entered failed state.
May 14 12:15:33 vm1 systemd[1]: kubelet.service: Failed with result 'exit-code'.

versão no nó de trabalho: kubeadm version kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.1", GitCommit:"d4ab47518836c750f9949b9e0d387f20fb92260b", GitTreeState:"clean", BuildDate:"2018-04-12T14:14:26Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

versão no nó mestre:

kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"10", 
GitVersion:"v1.10.1", 
GitCommit:"d4ab47518836c750f9949b9e0d387f20fb92260b", 
GitTreeState:"clean", BuildDate:"2018-04-12T14:14:26Z", 
GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

comando usado para fazer a junção:

  • obtenha o token: kubeadm token list | awk '/The default bootstrap token/ { print $1; }'

  • pegue o hash: openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

  • comando de junção: kubeadm join --skip-preflight-checks --token {{token}} --discovery-token-ca-cert-hash sha256:{{hash}} master_ip:6443

help wanted kinsupport prioritimportant-longterm

Comentários muito úteis

@ qianyong-2005

Mesmo problema aqui. Obrigado pelo link!

kubeadm token create --print-join-command 

Todos 3 comentários

Eu tenho o mesmo problema, agora está ok.

a vida útil padrão do token é de 24 horas, é necessário criar um novo token e, em seguida, juntar o kubeadm
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-token/

Sim, acho que seu token acabou de expirar no ponto em que você tentou entrar. Estou encerrando isso como resolvido.
Se não foi o caso, reabra.

@ qianyong-2005

Mesmo problema aqui. Obrigado pelo link!

kubeadm token create --print-join-command 
Esta página foi útil?
0 / 5 - 0 avaliações