运维第一步,先排查网络
master节点和node节点都要排查,我以master为例:
netstat-tunlp
如果命令不存在那么安装命令yum -y install net-tools
①查看是否有6443端口,如果有,证明apiserver服务是启动的,那就不管了
②排查防火墙状态,如果是inactive或者dead,证明防火墙关闭就不管了
systemctl status firewalld
systemctl status iptables
如果是下图这样,就是活跃的,证明防火墙是开的,一定要确保防火墙全部关闭
关闭命令:
systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
systemctl disable iptables
③然后在排查selinux
cat /etc/selinux/config
这里如果是enforcing或者permissive都不对,要改成disabled,如果已经是disabled就不用管它,改完后保存退出,最好重启下服务器让配置永久生效。
④然后去node节点 telnet master节点的 6443端口,如果能telnet通,证明网络没有问题,如果不是我下图这样,就是上面那几部,检查防火墙和selinux是否关闭。
如果telnet提示命令不存在,那么就安装一个,安装命令是yum -y install telnet
我截的图是telnet主机名加端口,可以把主机明换成ip,都是没问题的,telnet命令 和ip 和端口 之间有空格,命令别敲错了。ctrl + c 可以退出命令
⑤以上都没问题,master节点去找加入node节点的命令
kubeadm token create --print-join-command
将终端返回的 kubeadm join XXXXXX --token XXXXXX --discovery-token-ca-cert-hash sha256: XXXXXX
复制到node端执行,当然 XXXXXX 的意思是,master节点生成的值会是变量,你们复制当前自己master节点返回的值即可。
⑥怎么查询token到期时间呢?master节点执行
kubectl get secret -n kube-system
将查到的name值复制出来,放入已下命令
kubectl get secret -n kube-system 需要查询的NAME值 -oyaml
kubectl get secret -n kube-system bootstrap-token-fmvp4g -oyaml
将到期时间的值复制出来,我这里是MjAyNC0wOS0yMFQwMzo1NjozMVo= 这个到期值是变量,大家的肯定和我不一样,复制自己查询出来的值就可以,然后解密,可以得到到期时间
echo '到期值' | base64 --decode
我的就是echo 'MjAyNC0wOS0yMFQwMzo1NjozMVo=' | base64 --decode
到期值过了,删除命令是
kubectl delete secret -n kube-system bootstrap-token-fmvp4g
bootstrap-token-fmvp4g参数是变量,是使用kubectl get secret -n kube-system查询的NAME,大家根据自己查询出来的操作即可,kubeadm token create --print-join-command 这个命令又可以重新创建token
以上是我个人的总结,肯定有些细节遗漏的地方,大家中途如果出现报错,复制报错在百度搜索,然后一点一点排查,总能成功,希望帮助大家。