kubeadm worker节点加入master失败

发布于:2025-06-21 ⋅ 阅读:(18) ⋅ 点赞:(0)

1、操作

执行以下命令,让worker节点加入到master节点

kubeadm join 103.123.222.241:6443 --token vxe3v1.wzpnks8v1vbbtsu0 --discovery-token-ca-cert-hash sha256:038117f294d2e6d66ed97d447f97224209318dcd1ce6b12da5306411158e2e4f

2、问题现象

[preflight] Running pre-flight checks
error execution phase preflight: couldn't validate the identity of the API Server: could not find a JWS signature in the cluster-info ConfigMap for token ID "qs5sv6"

大概意思就是:API Server不能校验这次请求的身份信息。在ConfigMap里没有找到qs5sv6这个token。

3、问题原因

worker加入到master,master节点会校验worker join请求的hash值以及token值。token值是存在有效期的。因为我们的master节点创建好很长一段时间后,才执行的这个join操作,所以token过期了

4、问题解决

需要到API Server所在的master机器,重新生成token和hash值

4.1、重新生成token

kubeadm token create --ttl 2160h --description "Token for node joining"
vxe3v1.wzpnks8v1vbbtsu0 #控制台上输出的这一串是新的token值

4.2、重新生成hash值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | \
openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
#  控制台输出的这一串字母和数字的组合是新的hash值
038117f294d2e6d66ed97d447f97224209318dcd1ce6b12da5306411158e2e4f

5、验证

使用新的hash值和token值替换kubeadm join命令中的过期值,重新执行即可。执行成功后,我们可以到master节点查看新加入的worker节点。查看命令是:

kubectl get nodes

网站公告

今日签到

点亮在社区的每一天
去签到