如图:
[root@node1 ~]# kubeadm join 172.31.17.51:6443 --token le4vib.zn8g056y1spx24a1 --discovery-token-ca-cert-hash sha256:808ab5fc7df90edd907c53d21969b8d9ef43eab43599711c453762570440b98a
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized
原因:这是因为kubeadm init 产生的token默认的有效期是24小时,而我加入节点的时间已经超过24小时了,所以token过期了。
解决办法,在master节点上运行kubeadm token create --print-join-command重新生成token
[root@master ~]# kubeadm token create --print-join-command
kubeadm join 172.31.17.51:6443 --token s9eso0.r6xzdpw78cqnhg3z --discovery-token-ca-cert-hash sha256:808ab5fc7df90edd907c53d21969b8d9ef43eab43599711c453762570440b98a
再使用新的token就可以加入成功了
参考资料:https://www.cnblogs.com/only-me/p/10219903.html
kubeadm常见报错和解决方法