[转帖]k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d

k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d

http://www.voidcn.com/article/p-wpuagtbj-byy.html

? 考虑到node节点的kubelet报错Unable to update cni config: No networks found in /etc/cni/net.d,并且master节点的/etc/cni/net.d目录里拥有10-flannel.conflist文件,
? 我们可以把该文件从master节点复制到node节点的对应目录中,然后重启kubelet服务即可。
? (该方法亡羊补牢,对我的问题也没用)

我这边使用这个方法解决的 感觉挺有效果 留下来. 

一开始的状态:

[[email protected] ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s106 Ready master 59d v1.14.1
k8snode01 NotReady <none> 2d22h v1.14.1

当时报错信息为:

[[email protected] flannel]# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Fri 2020-01-17 09:25:06 CST; 7min ago
Docs: https://kubernetes.io/docs/
Main PID: 5694 (kubelet)
CGroup: /system.slice/kubelet.service
└─5694 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1

Jan 17 09:32:11 k8snode01 kubelet[5694]: W0117 09:32:11.141609 5694 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Jan 17 09:32:11 k8snode01 kubelet[5694]: E0117 09:32:11.666478 5694 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Jan 17 09:32:16 k8snode01 kubelet[5694]: W0117 09:32:16.142092 5694 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Jan 17 09:32:16 k8snode01 kubelet[5694]: E0117 09:32:16.668065 5694 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Jan 17 09:32:21 k8snode01 kubelet[5694]: W0117 09:32:21.142460 5694 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Jan 17 09:32:21 k8snode01 kubelet[5694]: E0117 09:32:21.669779 5694 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Jan 17 09:32:26 k8snode01 kubelet[5694]: W0117 09:32:26.142913 5694 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Jan 17 09:32:26 k8snode01 kubelet[5694]: E0117 09:32:26.671288 5694 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Jan 17 09:32:31 k8snode01 kubelet[5694]: W0117 09:32:31.143443 5694 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Jan 17 09:32:31 k8snode01 kubelet[5694]: E0117 09:32:31.673118 5694 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

集群搭建的过程中,master节点初始化成功,但 node节点加入集群时却一直显示NotReady状态,如下:

使用kubeclt describe node xxxx 命令,发现报错:

KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

进入node节点,执行 systemctl status kubelet 和 journalctl -xeu kubelet 命令,发现报错:

Unable to update cni config: No networks found in /etc/cni/net.d

原因:

该错误意思是 CNI插件还未安装,所以状态会是NotReady。

解决:

方法一:

? 编辑 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf文件(有的是/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf文件),
? 删除最后一行里的$KUBELET_NETWORK_ARGS 即可。
? (该方法治标不治本,没能解决我的问题)

方法二:

? 考虑到node节点的kubelet报错Unable to update cni config: No networks found in /etc/cni/net.d,并且master节点的/etc/cni/net.d目录里拥有10-flannel.conflist文件,
? 我们可以把该文件从master节点复制到node节点的对应目录中,然后重启kubelet服务即可。
? (该方法亡羊补牢,对我的问题也没用)

方法三:

? 注意到master节点的/etc/cni/net.d/10-flannel.conflist文件是经过 安装flannel插件 才生成的,而node节点则是在master节点安装完flannel插件后才加入集群的, ? 所以,我们不妨 先加入node节点,再执行 flannel插件的安装。 ? (该方法有取巧的嫌疑,但解决了我的问题)

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/12204861.html

时间: 2024-08-28 23:48:13

[转帖]k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d的相关文章

使用kubeadm部署k8s集群01-初始化

使用kubeadm部署k8s集群01-初始化 2018/1/3 节点配置 master x3 OS version: centos7 swapoff ### 阿里云默认:off hosts ### 每个节点上配置: [[email protected] ~]# cat /etc/hosts ### k8s master @envDev 10.10.9.67 tvm-00 10.10.9.68 tvm-01 10.10.9.69 tvm-02 Docker version: latest(17.0

再探使用kubeadm部署高可用的k8s集群-01引言

再探使用kubeadm部署高可用的k8s集群-01引言 2018/1/26 提示 仅供测试用途前言:高可用一直是重要的话题,需要持续研究.最近关注到 k8s 官网文档有更新,其中一篇部署高可用集群的文章思路不错,简洁给力,希望能分享给有需要的小伙伴一起研究下. 资源 k8s node master0, 10.222.0.100 master1, 10.222.0.101 master2, 10.222.0.102 LB, 10.222.0.88 master0, master1, master2

K8S集群安装

主要参考 https://github.com/opsnull/follow-me-install-kubernetes-cluster 01.系统初始化和全局变量 添加 k8s 和 docker 账户 在每台机器上添加 k8s 账户,可以无密码 sudo: $ sudo useradd -m k8s $ sudo visudo $ sudo grep '%wheel.*NOPASSWD: ALL' /etc/sudoers %wheel ALL=(ALL) NOPASSWD: ALL $ su

centos7系统部署rancher2.x,并创建k8s集群

前言 一 本文目标: 1.部署rancher-server UI,版本:2.3.52.通过rancher部署一个k8s集群crystal-cluster3.在k8s集群crystal-cluster上部属nginx实例 二 部署的几个前提: 1.按照官方的要求,选择rancher版本对应支持的系统版本和docker版本:2.安装ntp,保证每一台服务器之间的时间同步,否则可能会出现证书验证错误的问题:3.关闭防火墙和selinux.(如果要开启防火墙,那么要在防火墙放行rancher所需的端口,

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE

生产环境二进制k8s集群扩容node节点的实践

K8s二进制生产环境扩容node节点由于项目微服务也是部署在k8s集群中去维护的,所以扩容node节点也是必要的联系,扩容node节点一定要保证你整个集群的容器环境的网络都是互通的,这也是很重要的一步,这里我根据自己的经验去扩容,仅供参考首先我这里是安装的二进制方式去部署的k8s集群,进行扩容node的时候,也是非常方便的扩容node节点分为两步,第一步先将我们旧的node节点上的配置先去拷贝到我们新的节点上,第二点就是将我们的容器网络环境打通这里我是直接扩容两个node节点.第一步: 我们先去

k8s集群一键新加node节点脚本

继推出k8s集群一键升级脚本之后有不少小伙伴还有k8s在线扩容节点的需求,所以本次波哥就又写了一个扩充节点的脚本.明天有时间我再整理一下k8s部署集群脚本,目前是固定版本的,转化成部署任意版本的脚本或许更灵活一些.这样我们部署,升级,扩容三套脚本基本就能搞定k8s日常基础需求了.波哥也可以安心的写小程序后台了. 同样只要是你使用波哥的脚本部署的k8s集群都支持一键扩容哦! 脚本介绍: 跟以往一下我们有个base.config文件,修改上面的参数.这里我写好了自己的例子还有相关注释. 配置完毕后执

使用kubeadm部署k8s集群09-配置worker节点

使用kubeadm部署k8s集群09-配置worker节点 2018/1/4 配置 worker 节点 初始化 加入集群 切换 worker 节点连接到 apiserver 的 LB 入口 调整集群中节点角色和调度策略 初始化 /etc/hosts ### k8s master @envDev 10.10.9.67 tvm-00 10.10.9.68 tvm-01 10.10.9.69 tvm-02 k8s worker @envDev 10.10.9.74 tvm-0310.10.9.75 t

k8s集群新增节点

节点为centos7.4 一.node节点基本环境配置 1.配置主机名 2.配置hosts文件(master和node相互解析) 3.时间同步 ntpdate pool.ntp.org date echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org' >>/var/spool/cron/root crontab -l 4.关闭防火墙和selinux systemctl stop firewalld systemctl disable firewal