解决Kubernetes报错节点状态为NotReady,希望可以帮到你

2024-06-15 06:20

本文主要是介绍解决Kubernetes报错节点状态为NotReady,希望可以帮到你,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Kubernetes报错节点状态为NotReady

文章目录

  • Kubernetes报错节点状态为NotReady
    • 实验过程
    • 一、报错内容
    • 二、安装flannel网络插件
    • 三、成功

实验过程

起因是这样的这几天做学到了k8s,那肯定要部署呀,然后就先用kubeadm进行快速部署的,目的是为了体验一下广大程序员口中所说的Kubernetes(简称K8S),但是部署的过程中就出现了问题,是因为政策的原因导致的,近几天国家办法政策,不能访问Docker hub了,那对于我们Docker爱好者简直是一个晴天霹雳的消息,但是目前阿里云镜像仓库还是可以用的,但是用的过程中时好时不好,就比如kubeadm快速部署的过程中,有几个镜像阿里云就没办法提供了,只能使用魔法去拉取镜像了,话太多了不好意思,直接上干货

一、报错内容

使用kubeadm通过初始化安装的k8s是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如k8s-master节点上查看你节点信息是“Not Ready”状态、Pod的CoreDNS无法提供服服务

[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   NotReady   master   11m   v1.18.0
k8s-node01   NotReady   <none>   11m   v1.18.0
k8s-node02   NotReady   <none>   11m   v1.18.0

二、安装flannel网络插件

Flannel是一个轻量级的网络插件,基于虚拟网络的方式,使用了多种多端实现,如基于Overlay的VXLAN贺基于Host-Gateway的方式。它创建了一个覆盖整个集群的虚拟网络,使得Pod可以跨节点通信

[root@k8s-master ~]# kubectl apply -f kube-flannel.yaml
namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created

网络插件也安装了吧?再查看节点状态试试,如果我没猜错的话,再次查看节点状态,你的跟我的一样是一摸一样(可能NAME字段不一样、AGE、VERSION),

[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   NotReady   master   15m   v1.18.0
k8s-node01   NotReady   <none>   15m   v1.18.0
k8s-node02   NotReady   <none>   15m   v1.18.0

查看集群中所有命令空间的Pods的状态信息,如果我再次没猜错的话,你的又和我的一摸一样。

[root@k8s-master ~]# kubectl get pods -A
NAMESPACE      NAME                                 READY   STATUS                  RESTARTS   AGE
kube-flannel   kube-flannel-ds-2mb46                0/1     Init:ImagePullBackOff   0          8m15s
kube-flannel   kube-flannel-ds-bq8hg                0/1     Init:ImagePullBackOff   0          8m15s
kube-flannel   kube-flannel-ds-f975x                0/1     Init:ImagePullBackOff   0          8m15s
kube-system    coredns-7ff77c879f-2s7nf             0/1     Pending                 0          17m
kube-system    coredns-7ff77c879f-xn6q9             0/1     Pending                 0          17m
kube-system    etcd-k8s-master                      1/1     Running                 0          18m
kube-system    kube-apiserver-k8s-master            1/1     Running                 0          18m
kube-system    kube-controller-manager-k8s-master   1/1     Running                 0          18m
kube-system    kube-proxy-9mv7n                     1/1     Running                 0          17m
kube-system    kube-proxy-fgkg2                     1/1     Running                 0          17m
kube-system    kube-proxy-v5knt                     1/1     Running                 0          17m
kube-system    kube-scheduler-k8s-master            1/1     Running                 0          18m

那为什么会出现flannel镜像一直拉取不下来呢?就是因为阿里云镜像仓库可能没有这些镜像,所有就是使用了魔法,拉取到了镜像,最后也是成功的解决了,非常要感谢那个男人,我伟大的教员

# 可以看出正是以下这三个镜像没有拉取到导致我们的实验办法进行下去,我的yaml文件是进行过整改的,可以免费提供,评论或者即可
[root@k8s-master ~]# cat kube-flannel.yaml | grep imageimage: docker.io/flannel/flannel-cni-plugin:v1.1.2#image: docker.io/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.1.2image: docker.io/flannel/flannel:v0.21.5#image: docker.io/rancher/mirrored-flannelcni-flannel:v0.21.5image: docker.io/flannel/flannel:v0.21.5#image: docker.io/rancher/mirrored-flannelcni-flannel:v0.21.5

拉取镜像的命令放在下面了,需要使用魔法才能拉取到,拉取不到的评论或者私信免费提供(开源)

注意:拉取到了镜像要导入到全部的集群服务器中(master节点和node节点)

[root@k8s-master ~]# docker pull docker.io/flannel/flannel-cni-plugin:v1.1.2
[root@k8s-master ~]# docker pull docker.io/flannel/flannel:v0.21.5# master节点镜像
[root@k8s-master ~]# docker images | grep fl
flannel/flannel                                                   v0.21.5             a6c0cb5dbd21        13 months ago       68.9MB
flannel/flannel-cni-plugin                                        v1.1.2              7a2dcab94698        18 months ago       7.97MB# node1节点镜像
[root@k8s-node01 ~]# docker images | grep fl
flannel/flannel                                      v0.21.5             a6c0cb5dbd21        13 months ago       68.9MB
flannel/flannel-cni-plugin                           v1.1.2              7a2dcab94698        18 months ago       7.97MB# node2节点镜像
[root@k8s-node02 ~]# docker images | grep fl
flannel/flannel                                      v0.21.5             a6c0cb5dbd21        13 months ago       68.9MB
flannel/flannel-cni-plugin                           v1.1.2              7a2dcab94698        18 months ago       7.97MB

三、成功

  • 可能需要一点实验才能全部变成running
[root@k8s-master ~]# kubectl get pods -A
NAMESPACE      NAME                                 READY   STATUS    RESTARTS   AGE
kube-flannel   kube-flannel-ds-2mb46                1/1     Running   0          29m
kube-flannel   kube-flannel-ds-bq8hg                1/1     Running   0          29m
kube-flannel   kube-flannel-ds-f975x                1/1     Running   0          29m
kube-system    coredns-7ff77c879f-2s7nf             1/1     Running   0          39m
kube-system    coredns-7ff77c879f-xn6q9             1/1     Running   0          39m
kube-system    etcd-k8s-master                      1/1     Running   1          39m
kube-system    kube-apiserver-k8s-master            1/1     Running   1          39m
kube-system    kube-controller-manager-k8s-master   1/1     Running   1          39m
kube-system    kube-proxy-9mv7n                     1/1     Running   0          39m
kube-system    kube-proxy-fgkg2                     1/1     Running   0          39m
kube-system    kube-proxy-v5knt                     1/1     Running   1          39m
kube-system    kube-scheduler-k8s-master            1/1     Running   1          39m
  • 再次查看节点状态将会变成Ready(部署完成k8s)
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   53m   v1.18.0
k8s-node01   Ready    <none>   53m   v1.18.0
k8s-node02   Ready    <none>   53m   v1.18.0

这是一个云计算大佬,我伟大的教员:畅云客

这篇关于解决Kubernetes报错节点状态为NotReady,希望可以帮到你的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062655

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

SpringBoot整合Dubbo+ZK注册失败的坑及解决

《SpringBoot整合Dubbo+ZK注册失败的坑及解决》使用Dubbo框架时,需在公共pom添加依赖,启动类加@EnableDubbo,实现类用@DubboService替代@Service,配... 目录1.先看下公共的pom(maven创建的pom工程)2.启动类上加@EnableDubbo3.实