ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Kubernetes节点资源耗尽,导致Nodes节点状态NotReady

2022-07-21 12:04:11  阅读:462  来源: 互联网

标签:5m now k8s Kubernetes NotReady kubelet node2 节点


 

今天发现私有云上的Kubernetes cluster中的一个node似乎不工作了,连带的的应用也挂掉了,并且长时间没有恢复。在kubernetes上创建POD时,有个节点一直不能分配到POD,并且该节点上有些pod的状态为Pending。

 

首先,我查看集群中的所有Pods状态,发现node1和node3上的Pods均正常(running状态),但位于node2上的Pods均为“Pending”状态,显然node2节点出问题了。此时来查看nodes状态发现node2是异常的NotReady状态。

#查看pod状态

kubectl get pod -A -o wide

# 查看节点

kubectl get nodes

#kubectl get nodes 

NAME           STATUS   ROLES         AGE     VERSION
k8s-node1   Ready    master,node   7d18h   v1.20.6
k8s-node2   NotReady    master,node   7d18h   v1.20.6
k8s-node3   Ready    master,node   7d18h   v1.20.6

 

 如果你此刻去尝试查看(kubectl describe) 这几个pod的状态,多半你会失败,因为Pod在频繁重启,1-2s钟新创建的Pod就会被kill掉,导致你无法查看其状态。

我直接查看一下node2的状态,果不其然,我得到了一些Warning events信息:

#查询node2节点的状态

kubectl describe node k8s-node2

# kubectl describe node k8s-node2
... ...
Events:
  FirstSeen    LastSeen    Count    From            SubObjectPath    Type        Reason            Message
  ---------    --------    -----    ----            -------------    --------    ------            -------
  5m        5m        1    kubelet, k8s-node2            Normal        Starting        Starting kubelet.
  5m        5m        2    kubelet, k8s-node2            Normal        NodeHasSufficientDisk    Node k8s-node2 status is now: NodeHasSufficientDisk
  5m        5m        2    kubelet, k8s-node2            Normal        NodeHasSufficientMemory    Node k8s-node2 status is now: NodeHasSufficientMemory
  5m        5m        2    kubelet, k8s-node2            Normal        NodeHasNoDiskPressure    Node k8s-node2 status is now: NodeHasNoDiskPressure
  5m        5m        1    kubelet, k8s-node2            Normal        NodeAllocatableEnforced    Updated Node Allocatable limit across pods
  5m        5m        1    kubelet, k8s-node2            Normal        NodeHasDiskPressure    Node k8s-node2 status is now: NodeHasDiskPressure
  5m        14s      23    kubelet, k8s-node2            Warning        EvictionThresholdMet    Attempting to reclaim nodefs

 从状态可以看到有以下异常的信息:

status is now: NodeHasSufficientDisk
status is now: NodeHasSufficientMemory

status is now: NodeHasNoDiskPressure

 

1) NodeHasSufficientDisk:表示这个节点没有空闲的磁盘空间了,已经不能在上面创建POD了。

2) NodeHasSufficientMemory:表示这个节点上可用内存已经很少了。
3) NodeHasNoDiskPressure:表示这个节点上可用磁盘空间已经很少了。

 

既然提到了磁盘不足,我们就来看看磁盘占用情况:

# df -h

文件系统        容量  已用  可用 已用% 挂载点
udev            2.0G     0  2.0G    0% /dev
tmpfs           396M   46M  350M   12% /run
/dev/sda1       5.8G  5.1G  448M   97% /var
tmpfs           2.0G  288K  2.0G    1% /dev/shm
/dev/sdb1        99G  5.2G   89G    6% /data
tmpfs           396M     0  396M    0% /run/user/0
... ...

 

因此,进入node2节点 检查磁盘使用率,发现/var/lib/docker所在的分区,已经使用了97%.

删除/var/lib/docker 所在分区的一些临时文件后或把该目录挂载到一较大的分区后,重启kebelet后问题解决。

#重启kubelet

systemctl restart kubelet
systemctl status kubelet

 

 

、、

 

https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/

 

标签:5m,now,k8s,Kubernetes,NotReady,kubelet,node2,节点
来源: https://www.cnblogs.com/panw/p/16501308.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有