K8S安装Calico节点总是NotReady

问题场景:

今天部署了K8S主节点,Master节点安装了Calico网络插件,在运行node列表结果是NotReady:

[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES    AGE   VERSION
master   NotReady   master   22h   v1.19.4

获取kube-system pods 列表,dns为Pending

[root@master ~]# kubectl get pods -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-6d56c8448f-57njl         0/1     Pending   0          22h
coredns-6d56c8448f-k9nm2         0/1     Pending   0          22h
etcd-master                      1/1     Running   1          22h
kube-apiserver-master            1/1     Running   1          22h
kube-controller-manager-master   1/1     Running   1          22h
kube-proxy-9dljn                 1/1     Running   1          22h
kube-scheduler-master            1/1     Running   1          22h

查看pod coredns-6d56c8448f-57njl 详情日志没有数据,获取pod详情有错误信息:

[root@master ~]# kubectl logs coredns-6d56c8448f-57njl -n kube-system
[root@master ~]#
[root@master ~]# kubectl describe pods coredns-6d56c8448f-57njl -n kube-system
...其他信息
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  21h (x114 over 22h)  default-scheduler  0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
  Warning  FailedScheduling  51s (x25 over 5m2s)  default-scheduler  0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
[root@master ~]#

问题解决:

        最终结论是:我使用的1.29.4版本。Calico官网写的最还是用版本:

  • v1.27
  • v1.28
  • v1.29

         这几个版本,那就只能卸载升级了,下面是处理过程。

        首先看到的是污点,取消污点没有作用,这个是因为长时间node为NotReady,他会吧这个节点加入到污点,不在调度此node,但这恰恰是master节点。

        先使用[journalctl]命令查看系统日志关于K8S的:

[root@master ~]# journalctl -f -u kubelet
-- Logs begin at 二 2024-04-30 21:01:33 CST. --
4月 30 21:11:05 master kubelet[962]: W0430 21:11:05.628506     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:11:06 master kubelet[962]: E0430 21:11:06.818698     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
4月 30 21:11:10 master kubelet[962]: W0430 21:11:10.628945     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:11:11 master kubelet[962]: E0430 21:11:11.849882     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

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

是说没有找到cni配置,查看了一下都没有/etc/cni/这个文件夹,证明没有安装cni网络插件。

运行k8s软件状态也能有一部分日志:

[root@master ~]# 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 二 2024-04-30 21:01:44 CST; 11min ago
     Docs: https://kubernetes.io/docs/
 Main PID: 962 (kubelet)
    Tasks: 15
   Memory: 116.0M
   CGroup: /system.slice/kubelet.service
           └─962 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --network-plugin=cni --pod...

4月 30 21:12:45 master kubelet[962]: W0430 21:12:45.637104     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:12:47 master kubelet[962]: E0430 21:12:47.223164     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: ne... uninitialized
4月 30 21:12:50 master kubelet[962]: W0430 21:12:50.637477     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:12:52 master kubelet[962]: E0430 21:12:52.250303     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: ne... uninitialized
4月 30 21:12:55 master kubelet[962]: W0430 21:12:55.637834     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:12:57 master kubelet[962]: E0430 21:12:57.269078     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: ne... uninitialized
4月 30 21:13:00 master kubelet[962]: W0430 21:13:00.638500     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:13:02 master kubelet[962]: E0430 21:13:02.299863     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: ne... uninitialized
4月 30 21:13:05 master kubelet[962]: W0430 21:13:05.638862     962 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
4月 30 21:13:07 master kubelet[962]: E0430 21:13:07.328870     962 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: ne... uninitialized
Hint: Some lines were ellipsized, use -l to show in full.

可以清晰地看到同样的错误。 最后还是使用kubectl reset,再次init。又说不支持calico的operator.tigera.io/v1,这只能说明版本不同。

经测试,还是要换版本,calico-3.27.3 配合 K8S 的 1.28.2 没有问题本人就是这个组合。

最终​​​​​​​只要能保证:

  • 可执行文件、配置文件存在:

                /opt/cni/bin/flannel下面有calico、calico-ipam

                /etc/cni/net.d 下面有10-calico.conflist、calico-kubeconfig

[root@master ~]# ll /opt/cni/bin/
总用量 179860
-rwxr-xr-x 1 root root  4046172 5月   1 20:57 bandwidth
-rwxr-xr-x 1 root root  3104192 1月  19 2023 bridge
-rwxr-xr-x 1 root root 62171883 5月   1 20:57 calico
-rwxr-xr-x 1 root root 62171883 5月   1 20:57 calico-ipam
...
-rwxrwxr-x 1 root root  2491863 5月   1 21:59 flannel
...
[root@master ~]# ll /etc/cni/net.d
总用量 8
-rw-r--r-- 1 root root  679 5月   1 21:59 10-calico.conflist
-rw------- 1 root root 2741 5月   1 21:59 calico-kubeconfig
  • 相关pod存在,可以是ContainerCreating​​​​​​​:                
[root@master ~]# kubectl get pods -A --watch
NAMESPACE          NAME                                       READY   STATUS              RESTARTS        AGE
calico-apiserver   calico-apiserver-5f6cdcd994-6k2qh          0/1     ContainerCreating   0               47s
calico-apiserver   calico-apiserver-5f6cdcd994-8rhj6          0/1     ContainerCreating   0               47s
calico-system      calico-kube-controllers-56c4765c57-5h54b   1/1     Running             0               14m
calico-system      calico-node-btmt7                          1/1     Running             1 (2m16s ago)   14m
calico-system      calico-typha-7845756587-wc2h7              1/1     Running             1 (2m16s ago)   14m
calico-system      csi-node-driver-bps94                      0/2     ContainerCreating   0               14m
kube-system        coredns-66f779496c-s6p7r                   1/1     Running             0               76m
kube-system        coredns-66f779496c-zxh52                   1/1     Running             0               45m
kube-system        etcd-master                                1/1     Running             3 (2m16s ago)   76m
tigera-operator    tigera-operator-6bfc79cb9c-c25fb           1/1     Running             2 (90s ago)     14m

基本就架设对了,如果还是说 cni plugin not initialized 直接重启电脑试试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/591592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漏洞扫描神器:AppScan 保姆级教程(附破解步骤)

一、介绍 AppScan是IBM的一款应用程序安全测试工具,旨在帮助组织发现和修复应用程序中的安全漏洞。它提供了全面的功能和工具,用于自动化应用程序安全测试、漏洞扫描和漏洞管理。 以下是AppScan的一些主要特点和功能: 1. 自动化漏洞扫描&a…

中国市场,到底需要什么样的大模型?

“我是谁?”、“从哪里来?”、“要到哪里去?”。哲学史上,柏拉图提出的灵魂三问,是人们深刻、简明把握事物发展方向的思考路径。 当下,AI大模型热度比酷暑的热浪还高。但在众多大模型里,开一场…

【Unity Shader入门精要 第4章】数学基础(二)

1. Unity中的坐标空间 1.1 五个坐标空间 模型空间 模型自身的3D坐标系空间,左手坐标系是一个相对空间,坐标轴指向随模型旋转变化当物体有父节点时,Transform组件中各属性的值表示的即为该物体在其父物体的模型空间中的值当模型顶点传入顶点…

初始数据类型

注释补充 在我们编写任何代码的时候,都有一个叫做注释的功能 在golang中有两种 单行注释 // 如下图所示 加入了注释的话,代码在执行的时候会自动忽视这段内容 //fmt.Println("天上") //fmt.Println("天下") //fmt.Println("唯…

golang学习笔记(协程的基础知识)

golang的协程 协程是一种轻量级的线程,它可以实现并发执行的并行操作。协程是Go语言中的一个核心特性,它使得程序能够以并发的方式运行,并且非常高效。与传统的线程相比,协程的创建和销毁成本非常低,可以方便地启动大…

PS 2018

软件安装 文件太大,分批上传了,后续下载下来文件目录是这样的, 三个文件夹.7z 分批上传,exe也压缩分批上传, 其中products文件夹太大,里面子目录继续压缩分批上传 都下好了,就exe执行安装就行…

4.3 JavaScript变量

4.3.1 变量的声明 JavaScript是一种弱类型的脚本语言,无论是数字、文本还是其他内容,统一使用关键词var加上变量名称进行声明,其中关键词var来源于英文单词variable(变量)的前三个字母。 可以在声明变量的同时对其指定…

使用Python实现二维码生成工具

二维码的本质是什么? 二维码本质上,就是一段字符串。 我们可以把任意的字符串,制作成一个二维码图片。 生活中使用的二维码,更多的是一个 URL 网址。 需要用到的模块 先看一下Python标准库,貌似没有实现这个功能的…

Python实现获取网页内容及自动填表单与登录功能

这篇文章主要为大家详细介绍了如何利用Python实现模拟浏览器启动,获取网页内容、自动填表单、自动登录、自动过验证码等功能,需要的可以参考一下 库 源码 知识点补充 食用前准备 python 3.10.10 #二维码的库ddddocr 需要 库 import time import d…

VMware虚拟机安装Linux(CentOS)【超详细】

参考大佬文章:VMware虚拟机安装Linux教程(超详细)_vmware安装linux虚拟机-CSDN博客 目录 一、获取映射文件 二、新建虚拟机 三、安装操作系统 四、切换系统用户 一、获取映射文件 参考大佬文章获取映射文件,以及对应修改后缀名的方法 二、新建虚拟…

python项目==一个web项目,配置模板指定文件清洗规则,调用模板规则清洗文件

代码地址 一个小工具。 一个web项目,配置模板指定文件清洗规则,调用模板规则清洗文件 https://github.com/hebian1994/csv-transfer-all 技术栈: SQLite python flask vue3 elementplus 功能介绍: A WEB tool for cleaning…

C#图像:1.图像区域分割与提取

(1)创建一个名为SplitImage的窗体的应用程序,将窗体改名为FormSplitImage。 (2)创建一个名为ImageProcessingLibrary的类库程序,为该工程添加名为ImageProcessing的静态类 (3)为Imag…

leetcode-滑动窗口的最大值-95

题目要求 思路 1.这个题是可以暴力求解的,但是时间复杂度比较高,因此,这里说一个时间复杂度为O(n)的方法 2.因为这个代码是优化后的结果,第一次写如果直接写成这样着实不容易,因此,我直接讲每一行的含义。…

光伏光热一体化技术PVT

1、PVT集热器简介 太阳能光伏光热一体化组件主要由光伏与光热两个部分组成。光伏部分采用技术成熟的太阳能光伏面板,通过控制系统为建筑提供所需电能,主要包括光伏电池、蓄电池、逆变器和控制器等构件。光热部分主要为集热器,将太阳能转换为热…

手写一个uart协议——rs232

先了解一下关于uart和rs232的基础知识 文章目录 一、RS232的回环测试1.1模块整体架构1.2 rx模块设计1.2.1 波形设计1.2.2代码实现与tb1.2.4 仿真 1.3 tx模块设计1.3.1 波形设计1.3.2 代码实现与tb1.3.4 顶层设计1.3.3 仿真 本篇内容: 一、RS232的回环测试 上位机…

记录:git上传自己的本地项目

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍&…

顺序循环队列--c语言实现

#include <stdio.h> #include <stdlib.h> #include <stdbool.h>#define MAX_SIZE 100 // 假设队列的最大长度为100// 队列结构体 typedef struct {int data[MAX_SIZE]; // 存储队列元素的数组int front; // 队头指针int rear; // 队尾指针 } SeqQueue;// 初…

Python爬虫--爬取糗事百科段子

爬取糗事百科段子&#xff1a; 段子在 <div class"content"> 里面的 <span> 标签里面 不过这里有个坑&#xff0c;div 标签跟 span 标签 之间有很多空行 普通 .*? 是匹配不了的&#xff0c;需要使用模式修饰符 S S 的意思 让 .(点) 匹配&#xff0c…

C语言零基础快速入门视频教程

C语言零基础快速入门视频教程 介绍C语言C语言零基础视频教程领取教程下期更新预报 介绍C语言 C语言零基础快速入门&#xff1a;探索C语言的起源、特性与魅力 在编程世界中&#xff0c;C语言犹如一座古老而坚实的桥梁&#xff0c;连接着计算机科学的过去与现在。作为一门历史悠…

项目管理【环境】过程

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】过程 一、规划和管理项目的合规性 1.1 规划和管理项目的合规性 1.2 确认合规要求 1.3 审计&#xff1a;衡量合规的程度 二、项目管理计划和项目文件 2.1 项目管理计划和…
最新文章