现象:k8s集群,五台机器,其中第五台节点显示“NotReady”

sudo kubectl get node --show-labels

经过节点排查:

sudo kubectl get pods -n kube-system  #检查k8s系统组件,工作正常
sudo kubectl describe node k8s05  #发现节点有报错

从截图中的报错信息可以看出,是 【Kubelet stopped posting node status】问题,可以定位到是Kubelet服务没有起来,但最开始部署好k8s的时候,五个节点的Kubelet服务都是正常的,怎么会突然k8s05的服务挂掉?

先去k8s05机器上看一下原因。

systemctl status kubelet   #查看kubelet状态

状态确实是FAILURE

接下来看一下kubelet的日志

sudo journalctl -e -u kubelet

从日志中可以看出,是swap导致的节点的kubelet 自动重启失败。

临时解决方案:

sudo sudo swapoff -a  #关闭swap
sudo systemctl restart kubelet  #开启kubelet
sudo systemctl status kubelet   #查询kubelet状态

可以了。

永久解决方案:

cat /etc/fstab   #查看Linux系统开机自动挂载文件fstab

可以看出,设置了自动重启swap,而其他的机器则屏蔽了swap的自动重启,所以k8s05才会因为关机重启后,swap重新启动而导致kubelet自动重启失败。注掉sawp的重启命令即可。

更改的时候注意不要改错了,该错了,涉及其他服务,关机重启后就起不来了。

原因:

SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN

swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。

Swap会导致docker的运行不正常,性能下降,是个bug,但是后来关闭swap就解决了,就变成了通用方案。

后面的swap原因引用自:

部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewall 防火墙?_妖四灵.Shuen的博客-CSDN博客_k8s关闭swap

K8s问题之解决Kubelet stopped posting node status问题相关推荐

  1. node节点kubelet报错 node \“xxxxx“ not found

    11月 05 10:58:35 localhost.localdomain kubelet[974]: E1105 10:58:35.108952 974 kubelet.go:2412] " ...

  2. 解决kubelet报错:kubelet.go:2183] node “k8s-20-52“ not found

    解决kubelet报错:kubelet.go:2183] node "k8s-20-52" not found 由于公司机房服务器重启,k8s其中一个node节点的状态一直为Not ...

  3. kubernetes(K8S)容器部署,重新启动后,node节点提示notready无法正常工作。

    打开服务器,查看容器部署k8s组件节点是否正常. [root@k8s-master01 ~]# kubectl get pod -n kube-system NAME READY STATUS RES ...

  4. Kubernetes (K8s) 安装部署过程(七)之部署node节点

    部署前的准备 1).关闭swapp 功能否则kubelet启动将失败. vim /etc/fstab注释下面这行内容 /dev/mapper/cl-swap swap swap defaults 0 ...

  5. vue搭建cli脚手架环境(出现问题及解决,主要是node版本低)

    vue搭建cli脚手架环境(出现问题及解决,主要是node版本低) 参考文章: (1)vue搭建cli脚手架环境(出现问题及解决,主要是node版本低) (2)https://www.cnblogs. ...

  6. 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法

    解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法 参考文章: (1)解决Kubelet Pod启动CreatePodSandbox或RunPodSan ...

  7. K8s常见问题分析解决(基础问题)

    1:部分工作节点pod无法启动 详细描述:部分工作节点pod无法启动(处于ContainerCreateing状态)日志: failed to set up ..... Network: failed ...

  8. K8s常见问题分析解决

    1: Pod始终处于pending状态 详细描述: Pod始终处于pending状态 解题思路: 如果pod保持在pending的状态,意味着无法被正常的调度到节点上,由于系统的某些资源无法满足Pod ...

  9. K8s常见问题分析解决(未分类问题一)

    1: Pod始终处于pending状态 详细描述:Pod始终处于pending状态 解题思路:如果pod保持在pending的状态,意味着无法被正常的调度到节点上,由于系统的某些资源无法满足Pod的运 ...

最新文章

  1. oracle怎么adi导入,Web adi 导入笔记 详细图解
  2. 利用JS提交表单的几种方法和验证
  3. 广州站 | 云原生 Serverless 技术实践营精彩回顾
  4. PPT 下载 | 数据治理中的一些挑战与应用
  5. YOLOv4重磅发布,五大改进,二十多项技巧实验,堪称最强目标检测万花筒
  6. 前端学习(2189):Promise的介绍和基本使用二
  7. mysql从库应用负载_线上MySQL数据库高负载的解决思路--再次论程序应用索引的重要性...
  8. 美国喜提刷脸登机,官方开心发通告,竟马上引发公民不适
  9. 视频编解码(四):编辑器驱动移植步骤(VE)
  10. Linux 安装 RMVB,rm,ape文件 解码器
  11. 大厂OPPO面试— Android 开发技术面总结
  12. 2017 linux wine 迅雷,wine 迅雷下载安装(wine 迅雷极速版)【Linux上用迅雷7】
  13. 穿越时空的爱恋-Z80 CPU的前世今生
  14. 三万元存一年,利息是多少?银行工作人员:这么存最合算!
  15. 2022年文化艺术品产权交易所研究报告
  16. Tsi721芯片驱动代码使用说明
  17. 批量添加用户脚本--Linux bash
  18. 2020春季学期哈工大软件构造学习心得五
  19. Python入门总结-默单词程序
  20. ( )是专用计算机系统,PLC是一种工业控制用的专用计算机,是由( )与软件系统两大部分组成...

热门文章

  1. 【转】python入门教程
  2. 金蝶应收应付模块流程_金蝶KIS财务业务模块操作流程[整理版]
  3. linux ssh连接交换机_使用SSH登录交换机(RSA方式)
  4. 定积分法求区间内sin x的面积
  5. ChatGPT编程能力实证研究
  6. 1.Java基础入门
  7. .net 继续学习引领
  8. 基于PLCnext的HMI解决方案 | eHMI、Visu+、PROFICLOUD,你pick谁?
  9. 修改mysql中数据库存储主路径
  10. 解决Keil安装Pack包的“Loading PDSC Debug Description Failed”错误