k8s集群node节点状态为Not Ready

2024-04-09 07:28

本文主要是介绍k8s集群node节点状态为Not Ready,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、Node节点Not Ready状态的可能原因

二、排查node节点状态为Not Ready的原因


一、Node节点Not Ready状态的可能原因

node节点状态为Not Ready可能的原因有:

1.网络插件出问题

有过安装经验的小伙伴应该很熟悉未安装网络插件的情况下node节点在集群中的状态为not ready

2.kubelet进程的问题

了解一下kubelet作用:

容器生命周期管理

资源管理与调度

容器网络配置

存储卷管理

与Master节点的通信

健康检查和事件生成

kubelet是在每个节点上运行的代理,它负责与kubernetes API服务器通信并注册节点。如果kubelet在节点上崩溃或停止,将无法与API Server通信并处于状态Not Ready。

3. 资源稀缺

如果磁盘空间、内存等资源不足,会导致节点进入NotReady状态。

4.kube-proxy出问题

kube-proxy是运行在每个节点上并维护网络规则的网络代理。这些规则允许从集群内部或外部与您的pod进行网络通信,如果kube-proxy崩溃或停止,节点将处于状态Not Ready。

5.kubelet证书过期

二、排查node节点状态为Not Ready的原因

1.网络插件

查看容器状态:

kubectl get pod -A -o wide

查看网络路由:

ip route

查看网络配置:

ip addr/ifconfig

一方面确定网络插件在启动状态,多网络插件的情况下也没有出现网络配置错乱的情况,另一方面确保网络的路由情况没有出错。

2.kubelet进程

查看kubelet状态

systemctl status kubelet

如果kubelet状态不是running,而是activating(auto-restart)

查看kubelet的运行日志:

journalctl -u kubelet  --since today | less

通过安装情况+报错日志推测出来应该是kubelet证书过期的结果,事实证明也的确是如此的原因。

3. 资源稀缺

查看节点的资源情况

df -h

du -sh 路径

一般来说节点上的容器状态出现Evicted或ContainerStatusUnknown,可以优先考虑是磁盘资源不足的情况。若需清理磁盘空间,可参考k8s运维—系统磁盘资源占用率过高-CSDN博客

4.kube-proxy

查看kube-proxy pod的状态

kubectl get pod -n kube-system -o wide

若有问题:

kubectl describe pod podname -n kube-system

5.kubelet证书过期

众所周知,正常情况下k8s的证书为一年一换,不经意间可能会遇到证书过期的情况,所以要仔细查看日志内容中的关键内容,关于证书替换可以参看K8S证书过期解决办法之替换证书_kubelet证书过期了怎么处理-CSDN博客

本次的总结就到这里啦~~希望后续还有机会能继续学习

这篇关于k8s集群node节点状态为Not Ready的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片