问题场景:

  1. K8S master节点安装完kube-flannel之后(加粗是重点) 执行kubectl get nodes命令看到master状态依旧是NotReady
  2. K8S node节点kubeadm join命令后,已成功添加到集群,但是执行kubectl get nodes命令看到node状态依旧是NotReady

图片展示的是node节点的NotReady状态,master节点最开始也是这个状态,我已经解决过了,无论master节点还是node节点,都可以试下这个方法
在这里插入图片描述

核对问题症状:

  1. 执行journalctl -f -u kubelet命令
    报错:NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    或者报错:Unable to update cni config: no valid networks found in /etc/cni/net.d
    在这里插入图片描述

  2. 执行ls /opt/cni/bin/命令,看是否有flannel这个文件,如果没有,就是有问题的
    在这里插入图片描述

解决办法:

手工复制flannel到/opt/cni/bin/文件夹,并添加执行权限

  1. 下载文件cni-plugins-linux-amd64-v0.8.6.tgz,并提取flannel文件
    这个文件挺不容易下载,我附一个百度云地址,也可以自己从网上找

    百度云地址:https://pan.baidu.com/s/19awtK-7_wJWvpQ3d-l8NTg
    提取码:8888

  2. 把提取到的flannel复制或上传到/opt/cni/bin/
    在这里插入图片描述

  3. 执行chmod +x /opt/cni/bin/flannel 命令添加权限
    在这里插入图片描述

  4. 返回master节点,执行kubectl get nodes命令查看状态,问题解决
    在这里插入图片描述

当然出现问题的原因可能有很多种,这个方案不能百分百解决

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐