项目场景:
kubernetes的node节点加入join master成功后,但在master节点上,master节点无法kubectl get nodes发现新加入的节点,这是本人在学习过程中遇到的问题,希望避雷
问题描述
出现的错误如下:
在master节点执行kubectl get nodes,但只有master节点,虽然node节点显示已经成功添加,但是无法查询到。
原因分析:
这是由于,在安装k8s集群的时候,由于先安装了一台虚拟机,故采用克隆的机制,能够快速地多生成几台虚拟机,如我本人就是,先安装了一台master,后克隆出来了2台node,但这在初始化集群配置时会出现问题,由于master节点与node节点的hostname一样,所以即使node成功加入了master,但是在master节点kubectl get nodes还是看不到node的存在,我们可以采用下列方法解决:
解决方案:
我们可以通过查看并修改主机名,看是否是这个问题,并尝试重新加入node节点
hostname $hostname // 查看主机名
hostnamectl --static set-hostname k8s-node1 //修改主机名为k8s-node1
kubeadm reset //清理环境
kubeadm join 192.168.92.100:6443 --token q13il4.r3zmvd4fc6kaqavi --discovery-token-ca-cert-hash sha256:d740b336ca71ca6b7c1ff8ea4cc92db7848e6342db9fefbb3a2682b3f9753708
//重新加入,如果token已过期,在master节点执行kubeadm token create --print-join-command,再复制