k8s node节点加入join master成功后,但在master节点上,master节点无法kubectl get nodes发现新加入的节点,踩坑

项目场景:

      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,再复制

 

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Kubernetesk8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。在k8s集群中,有一个主节点master node)和多个工作节点(worker node)。主节点负责管理集群中的资源和进行调度决策,而工作节点则负责运行应用程序容器。 在k8s集群中添加多个主节点可以提高集群的可靠性和容错能力。如果某个主节点出现故障,其他主节点可以继续正常工作,确保集群的稳定性和可用性。 下面是详细的步骤和解析,以添加两个主节点为例: 1. 准备环境 确保每个的主节点都可以访问k8s集群,并且已安装了所需的软件包和依赖项。需要确保主节点上的kubeadm、kubelet、kubectl容器运行时(如Docker或CRI-O)等软件版本与其他节点相同。 2. 初始化第一个主节点 在集群中选择一个现有的主节点来初始化第一个节点。可以使用kubeadm init命令将节点纳入集群。 示例命令: ``` $ kubeadm init --control-plane-endpoint=LOAD_BALANCER_DNS_OR_IP --upload-certs ``` 其中,LOAD_BALANCER_DNS_OR_IP是负载均衡器的DNS或IP地址,用于将流量分配到多个主节点。--upload-certs选项将证书上传到的主节点,以确保其可以加入现有的控制平面。 3. 加入第二个主节点 使用kubeadm join命令将第二个主节点加入集群。要注意的是,需要指定的主节点的API服务器地址和证书,以便其可以连接到集群。 示例命令: ``` $ kubeadm join LOAD_BALANCER_DNS_OR_IP --token TOKEN --discovery-token-ca-cert-hash SHA256:HASH --control-plane --certificate-key CERTIFICATE_KEY ``` 其中,TOKEN是由第一个主节点生成的加入令牌,HASH是由第一个主节点生成的CA证书哈希值,CERTIFICATE_KEY是第一个主节点生成的证书密钥。 4. 初始化第二个主节点 在第二个主节点上执行与第一个主节点相同的命令,初始化第二个主节点加入集群。 示例命令: ``` $ kubeadm init --control-plane-endpoint=LOAD_BALANCER_DNS_OR_IP --upload-certs ``` 5. 验证集群状态 使用kubectl命令验证集群状态,确保所有节点都已成功加入集群。可以使用以下命令查看节点状态: ``` $ kubectl get nodes ``` 6. 完成 现在,k8s集群已添加两个主节点,并且可以更好地扩展和管理容器化应用程序。 解析: 添加多个主节点可以提高k8s集群的可靠性和容错能力。多个主节点可以共同管理集群中的资源和进行调度决策,从而确保集群的稳定性和可用性。 在添加的主节点之前,需要确保每个的主节点都可以访问k8s集群,并且已安装了所需的软件包和依赖项。需要确保主节点上的kubeadm、kubelet、kubectl容器运行时(如Docker或CRI-O)等软件版本与其他节点相同。 在添加的主节点时,需要指定API服务器地址和证书,以便的主节点可以连接到集群。如果使用负载均衡器将流量分配到多个主节点,需要确保所有主节点的负载均衡器地址相同。 添加多个主节点后,需要使用kubectl命令验证集群状态,确保所有节点都已成功加入集群。可以使用kubectl get nodes命令查看节点状态。 总的来说,添加多个主节点可以提高k8s集群的可靠性和容错能力,使其更适合运行生产环境中的容器化应用程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值