k8s中node节点资源不足

节点资源耗尽状态

1、查看节点组件的状态
2、查看节点上pod的状态

查看日志内容发现如下内容:
1、Node emay-CMPP01 status is now: NodeHasDiskPressure
2、Warning: “EvictionThresholdMet Attempting to reclaim nodefs”
从以上内容大致可以判断出node3处于磁盘空间不足的状态下,并且该node上的kubelet daemon判断达到了Eviction阀值,试图回收磁盘空间(通过某种杀Pod的方式来缓解资源不足)。

查看service的状态

journalctl  -u kubelet -f
1月 14 09:50:55 ubuntu-k8s-3 kubelet[17144]: W1016 09:50:55.056703   17144 eviction_manager.go:331] eviction manager: attempting to reclaim nodefs
1月 14 09:50:55 ubuntu-k8s-3 kubelet[17144]: I1016 09:50:55.057322   17144 eviction_manager.go:345] eviction manager: must evict pod(s) to reclaim nodefs
1月 14 09:50:55 ubuntu-k8s-3 kubelet[17144]: E1016 09:50:55.058307   17144 eviction_manager.go:356] eviction manager: eviction thresholds have been met, but no pods are active to evict

kubelet日志也印证了上面的判断:node因为磁盘不足不再参与pod调度,但尝试回收磁盘空间时却发现已经没有active pod可以kill了!

解决:
1、可以扩大磁盘(我们采用此方案)
2、更改Eviction阀值

原文地址:https://www.cnblogs.com/ainimore/p/12191848.html

时间: 2024-08-30 10:23:03

k8s中node节点资源不足的相关文章

清除线上k8s中node节点无用的镜像

为了以防万一(线上环境一定要谨慎谨慎再谨慎),清除镜像对已有的pod造成不必要的影响:我们以下的操作在容器最少的node节点上运行!(如果没有的话,可以重新开一台node节点) 1.先使用kubectl get po –namespace 命名空间,查看该命名空间已有的pod 2.重新部署pod,在该node节点上产生多余的images镜像 3.使用docker system df命令,在执行清除镜像之前先查看镜像和容器的数量.注:类似于Linux上的df命令,用于查看Docker的磁盘使用情况

k8s部署---node节点组件部署(四)

kubelet组件简介 kubernetes 是一个分布式的集群管理系统,在每个节点(node)上都要运行一个 worker 对容器进行生命周期的管理,这个 worker 程序就是 kubelet kubelet 的主要功能就是定时从某个地方获取节点上 pod/container 的期望状态(运行什么容器.运行的副本数量.网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态. kubelet组件特性 定时汇报当前节点的状态给 apiserver,以供调度的时候使用 镜像和容器的清理工

JS中Node节点总结

Node的三个基本属性: 1.nodeType:表明节点类型,1是元素节点,3是文本节点. 2.nodeName:  表明节点名称,元素节点为标签名,文本节点为#text. 3.nodeValue:表明节点值,元素节点为null,文本节点为文本内容. Node的节点关系: 1.parentNode与childNodes parentNode寻找当前节点的父节点,childNodes寻找当前节点的子节点,其中包括文本节点和元素节点(特别需要注意空白的文本节点也算是节点)如下程序 <!DOCTYPE

K8S中Pod节点状态ContainerCreating原因排查

创建好一个pod之后,STATUS的状态一直是ContainerCreating,然后查看这个pod的详细信息.报错: 网上查看了解决方法: 可以看到是网络问题. 原因是node之前反复添加过,添加之前需要清除下网络 node上执行: # kubeadm reset # systemctl stop kubelet # systemctl stop docker # rm -rf /var/lib/cni/ /var/lib/kubelet/* /etc/cni/ # ifconfig cni0

K8S中的资源

一.什么是资源? K8S中所有的内容都抽象为资源,资源实例化之后,叫做对象 二.K8S中存在哪些资源? 1.工作负载型资源(workload) Pod , ReplicaSet , Deployment, StatefulSet, DaemonSet, Job, CronJob (ReplicationController 在v.11版本被废弃) 2.服务发现及负载均衡型资源( ServiceDiscovery  LoadBalance) Service, Ingress... 3.配置与存储型

Kubernetes容器集群管理环境 - Node节点的移除与加入

一.如何从Kubernetes集群中移除Node 比如从集群中移除k8s-node03这个Node节点,做法如下: 1)先在master节点查看Node情况 [[email protected]-master01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-node01 Ready <none> 47d v1.14.2 k8s-node02 Ready <none> 47d v1.14.2 k8s-node03 R

Kubernetes(K8s)安装部署过程(六)--node节点部署

hi,everybody,我回来了,之前安装到flannel之后,文章一直没有更新,甚至不少小伙伴都来加qq询问是否继续更新了, 这里说明下原因,我在部署1.91node的时候的确出现了各种各样的问题,导致节点启动后哦,master总是看不到,遇到的问题大概有 1.虚拟机时间同步不一致问题,导致etcd创建资源不成功 2.node节点无法自动创建kubelet.kubeconfig问题,这个是最严重的问题,原因是config文件没有拷贝到node的/etc/kubernetes文件夹内,因为ku

5.K8S部署-------- 部署Node节点

没有特别其他说明一切按照文档执行 1.二进制包准备 将软件包从linux-node1复制到linux-node2 linux-node3中去. [[email protected]1 ~]# cd /usr/local/src/kubernetes/server/bin/ [[email protected] bin]# cp kubelet kube-proxy /opt/kubernetes/bin/ [[email protected] bin]# scp kubelet kube-pro

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE