解决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

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn