zoukankan      html  css  js  c++  java
  • kubeadm join添加节点,新加节点夯在not ready(cni config uninitialized)

    问题

         通过kubadm join 新添加了一个节点到k8s集群,发现节点一直为not ready 状态

    排查

         1.初始以为新加节点kubelet进程未启动,在该节点通过service kubelet status命令,检查kubelet进程为 active和running状态。

         2.kubelet进程启动成功,但是查看kubelet日志信息,发现cni config uninitialized错误,显示not network found in /etc/cni/net.d

       3.综上信息,判断为网络原因导致的该节点为not ready,但是为何新加节点初始化网络未成功?该集群使用为flannel网络,通过daemonset部署flannel的相关组件。通过kubectl get ds  -n kube-system kube-flannel -o wide命令,发现desired和current仍然为6个(集群原来6个节点),意味着daemonset未在新加节点运行kube-flannel的pod。

      4.继续排查kube-flannel的daemonset为何未在新加节点调度运行pod,检查tolerations如下

    如上图,tolerations只有与master节点有关的配置。

    解决

          综上分析,kube-flannel的daemonset配置不完全,导致和not ready的节点进入死锁循环:一方面,现kube-flannel的daemonset配置,要求节点为ready状态,才会调度kube-flannel的pod到此节点运行;另一方面,如果不调度kube-flannel的pod到新加节点运行,初始该节点的cni配置,该节点又无法变成ready状态。

          因此,解决办法为修改kube-flannel的daemonset的tolerations配置,增加相关配置即可。

              如上图,增加tolerations允许节点即使未变成ready状态,也要调度kube-flannel的pod运行。

             增加上述配置后,新加节点自动运行kube-flannel的pod,节点也变成ready状态。

  • 相关阅读:
    [考试反思]0421省选模拟76:学傻
    [考试反思]0420省选模拟75:安在
    [考试反思]0418省选模拟74:杂枝
    [考试反思]0417省选模拟73:纠结
    [考试反思]0416省选模拟72:停滞
    [考试反思]0415省选模拟71:限制
    [考试反思]0414省选模拟70:阻塞
    [考试反思]0413省选模拟69:遗弃
    [考试反思]0411省选模拟68:毒瘤
    [考试反思]0410省选模拟67:迷惑
  • 原文地址:https://www.cnblogs.com/360linux/p/13062056.html
Copyright © 2011-2022 走看看