OpenStackクラウドプロバイダーでK8sクラスターを実行しています。
クラスターは、マスターノードとスレーブノードを含むkubeadmツールを使用して
kubeadm joinコマンドを使用して他のワーカーノードを追加しようとしています。コマンドはノードが正常に追加されたことを示す肯定的な応答を示しますが、 kubectl get nodes
コマンドを使用してそれを見つけることができません。
調査したところ、新しいスレーブノードのkubeletが実行されておらず、 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'.
ワーカーノードのバージョン: 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"}
マスターノードのバージョン:
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"}
結合を行うために使用されるコマンド:
トークンを取得します: kubeadm token list | awk '/The default bootstrap token/ { print $1; }'
ハッシュを取得する: openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
参加コマンド: kubeadm join --skip-preflight-checks --token {{token}} --discovery-token-ca-cert-hash sha256:{{hash}} master_ip:6443
私は同じ問題を抱えています、今は大丈夫です。
トークンのデフォルトの有効期間は24時間です。新しいトークンを作成してから、kubeadmに参加する必要があります。
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-token/
ええ、あなたが参加しようとした時点であなたのトークンはちょうど期限切れになったと思います。 解決したのでこれを閉じます。
そうでない場合は、再度開いてください。
@ qianyong-2005
ここでも同じ問題があります。 リンクをありがとう!
kubeadm token create --print-join-command
最も参考になるコメント
@ qianyong-2005
ここでも同じ問題があります。 リンクをありがとう!