Kubernetes 执行join卡住导致加入集群失败问题解决

问题现象

之前自己搭建了一个k8s集群,配置如下:

os: centos8
master:  8U8G 192.168.2.106
worker1: 4U4G 192.168.2.240
worker2: 4U4G 192.168.2.149

最近需要在k8s上搭建hadoop集群,但是两台worker有点捉襟见肘,遂决定再添加一台worker3,k8s的安装在此不再赘述,感兴趣的可以参照我另外一篇文章

从零开始搭建kubernetes集群

但是在使用如下命令
kubeadm join 192.168.2.106:6443 --token 2x0odw.1z8pda6zlov83z0u \ --discovery-token-ca-cert-hash sha256:ca77eaa6ddaf0fec34894c521a139a1a444c35b0cd1739ebe6c5080ffb3c8b97

将worker3节点纳管到集群中时却卡住了,等了5分钟左右仍然没有响应:
在这里插入图片描述

解决办法

通过参考Kubernetes 执行join卡住导致加入集群失败问题解决这篇文章最后总算解决了问题。
首先我想到如果是证书的问题,那么我在之前已经纳管的节点worker1、worker2上重新join肯定也会失败,但是事实并不是这样:
Kubernetes 执行join卡住导致加入集群失败问题解决_第1张图片
在worker1上执行确是成功了,只不过提示纳管的一些配置文件已经创建过了,所以由此推断证书没有问题,那么到底时什么原因引起的呢?

在上面的参考博客中提到有两种情况会导致出现这种现象。一、证书过期(已排查)二、token过期
结合worker1、worker2是在master初始化完成后就纳入集群,而worker3却是在几天之后进行纳管,所以token失效的几率很大。
所以按照如下步骤就行尝试,最终解决了问题:

1.创建一个永久token来防止token失效
在master节点上执行:
kubeadm token create --ttl 0
kubeadm token list

结果如下图所示:
在这里插入图片描述
会生成一个新的token,拿到这个token在woker3上执行 kubeadm join,成功纳管:
Kubernetes 执行join卡住导致加入集群失败问题解决_第2张图片
在这里插入图片描述

总结

遇到问题时可以采用控制变量法,再结合网络上搜集到的一些信息进行试错。大胆猜想,小心求证。

你可能感兴趣的:(微服务,kubernetes)