K8s问题之解决Kubelet stopped posting node status问题
现象: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问题相关推荐
- node节点kubelet报错 node \“xxxxx“ not found
11月 05 10:58:35 localhost.localdomain kubelet[974]: E1105 10:58:35.108952 974 kubelet.go:2412] " ...
- 解决kubelet报错:kubelet.go:2183] node “k8s-20-52“ not found
解决kubelet报错:kubelet.go:2183] node "k8s-20-52" not found 由于公司机房服务器重启,k8s其中一个node节点的状态一直为Not ...
- kubernetes(K8S)容器部署,重新启动后,node节点提示notready无法正常工作。
打开服务器,查看容器部署k8s组件节点是否正常. [root@k8s-master01 ~]# kubectl get pod -n kube-system NAME READY STATUS RES ...
- Kubernetes (K8s) 安装部署过程(七)之部署node节点
部署前的准备 1).关闭swapp 功能否则kubelet启动将失败. vim /etc/fstab注释下面这行内容 /dev/mapper/cl-swap swap swap defaults 0 ...
- vue搭建cli脚手架环境(出现问题及解决,主要是node版本低)
vue搭建cli脚手架环境(出现问题及解决,主要是node版本低) 参考文章: (1)vue搭建cli脚手架环境(出现问题及解决,主要是node版本低) (2)https://www.cnblogs. ...
- 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法 参考文章: (1)解决Kubelet Pod启动CreatePodSandbox或RunPodSan ...
- K8s常见问题分析解决(基础问题)
1:部分工作节点pod无法启动 详细描述:部分工作节点pod无法启动(处于ContainerCreateing状态)日志: failed to set up ..... Network: failed ...
- K8s常见问题分析解决
1: Pod始终处于pending状态 详细描述: Pod始终处于pending状态 解题思路: 如果pod保持在pending的状态,意味着无法被正常的调度到节点上,由于系统的某些资源无法满足Pod ...
- K8s常见问题分析解决(未分类问题一)
1: Pod始终处于pending状态 详细描述:Pod始终处于pending状态 解题思路:如果pod保持在pending的状态,意味着无法被正常的调度到节点上,由于系统的某些资源无法满足Pod的运 ...
最新文章
- dbeaver数据库工具
- MacBook如何用Parallels Desktop安装windows7/8
- 中国最大的python社区-python找最大值
- 浅析堡垒机概念及工作原理(转)
- 如何调试程序的后台作业
- nmap常用的扫描命令
- 大唐发电厂计算机考试题,全国计算机等级考试上机考试与题库解析:一级B
- java二维数组的常见初始化
- 清结算内部勾兑业务一个比较有意思的问题整理
- return error怎么定义_这一次搞懂Spring自定义标签以及注解解析原理
- C++新特性探究(18.3):C++11 weak_ptr智能指针
- 和could的区别用法_have to 与 must 用法及区别
- 使用jQuery实现网页技术(无数据库)
- 企业中有关Server Sharing的一点想法
- Unity基础UI框架
- 阿里巴巴代码规范考试
- 永洪科技贺新颖:业务中台+数据中台,赋能企业核心业务
- 基于SSM实现的医院医药药品管理系统-JAVA【数据库设计、源码、开题报告】
- idea 分支管理插件_git flow 分支管理idea 具体操做
- 【group by】