Ich habe einen K8s-Cluster, der unter einem OpenStack-Cloud-Anbieter ausgeführt wird.
Der Cluster wird mit dem kubeadm- Tool eingerichtet, das einen Master- und einen Slave-Knoten enthält.
Ich versuche, einen anderen Worker-Knoten mithilfe des Befehls kubeadm join hinzuzufügen. Der Befehl zeigt eine positive Antwort an, die besagt, dass der Knoten erfolgreich hinzugefügt wurde. Ich kann ihn jedoch nicht mit dem Befehl kubectl get nodes
.
Ich habe nachgeforscht und festgestellt, dass kubelet auf dem neuen Slave-Knoten nicht ausgeführt wird und cannot create certificate signing request: Unauthorized
anzeigt.
-- 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'.
Version auf Worker-Knoten: 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"}
Version auf dem Masterknoten:
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"}
Befehl zum Herstellen des Joins:
Holen Sie sich den Token: kubeadm token list | awk '/The default bootstrap token/ { print $1; }'
Holen Sie sich den Hash: openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
Join-Befehl: kubeadm join --skip-preflight-checks --token {{token}} --discovery-token-ca-cert-hash sha256:{{hash}} master_ip:6443
Ich habe das gleiche Problem, jetzt ist ok.
Die Standardlebensdauer des Tokens beträgt 24 Stunden. Sie müssen ein neues Token erstellen und dann kubeadm beitreten
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-token/
Ja, ich denke, Ihr Token ist gerade abgelaufen, als Sie versucht haben, sich anzumelden. Ich schließe dies als gelöst.
Wenn dies nicht der Fall war, öffnen Sie es bitte erneut.
@ qianyong-2005
Selbes Problem hier. Danke für den Link!
kubeadm token create --print-join-command
Hilfreichster Kommentar
@ qianyong-2005
Selbes Problem hier. Danke für den Link!