Kubernetes节点资源耗尽,导致Nodes节点状态NotReady
2022/7/22 2:00:19
本文主要是介绍Kubernetes节点资源耗尽,导致Nodes节点状态NotReady,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天发现私有云上的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/
这篇关于Kubernetes节点资源耗尽,导致Nodes节点状态NotReady的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23云原生周刊:利用 eBPF 增强 K8s
- 2024-12-20/kubernetes 1.32版本更新解读:新特性和变化一目了然
- 2024-12-19拒绝 Helm? 如何在 K8s 上部署 KRaft 模式 Kafka 集群?
- 2024-12-16云原生周刊:Kubernetes v1.32 正式发布
- 2024-12-13Kubernetes上运行Minecraft:打造开发者平台的例子
- 2024-12-12深入 Kubernetes 的健康奥秘:探针(Probe)究竟有多强?
- 2024-12-10运维实战:K8s 上的 Doris 高可用集群最佳实践
- 2024-12-022024年最好用的十大Kubernetes工具
- 2024-12-02OPA守门人:Kubernetes集群策略编写指南
- 2024-11-26云原生周刊:K8s 严重漏洞