K8S线上集群排查,实测排查Node节点NotReady异常状态

本文介绍了在Kubernetes集群中遇到Node节点变为NotReady状态的问题,详细阐述了从Pod状态、业务回顾、问题分析、PLEG(Pod生命周期事件生成器)等方面进行的排查过程。通过分析得出,可能的原因包括Kubelet健康检查压力增大、网络影响以及硬件资源限制。提供了一些K8S常用命令以帮助日常运维。
摘要由CSDN通过智能技术生成
一,文章简述

大家好,本篇是关于在之前项目中,k8s 线上集群中 Node 节点状态变成 NotReady 状态,导致整个 Node 节点中容器停止服务后的问题排查。

文章中所描述的是本人在项目中线上环境实际解决的,那除了如何解决该问题,更重要的是如何去排查这个问题的起因。

关于 Node 节点不可用的 NotReady 状态,当时也是花了挺久的时间去排查的。

二,Pod 状态

在分析 NotReady 状态之前,我们首先需要了解在 k8s 中 Pod 的状态都有哪些。并且每个状态都表示什么含义,不同状态是很直观的显示出当前 Pod 所处的创建信息。

为了避免大家对 Node 和 Pod 的概念混淆,先简单描述下两者之间的关系(引用一张 K8S 官方图)。

image

从图中很直观的显示出最外面就是 Node 节点,而一个 Node 节点中是可以运行多个 Pod 容器,再深入一层就是每个 Pod 容器可以运行多个实例 App 容器。

因此关于本篇文章所阐述的 Node 节点不可用,就会直接导致 Node 节点中所有的容器不可用。

毫无疑问,Node 节点是否健康,直接影响该节点下所有的实例容器的健康状态,直至影响整个 K8S 集群。

那么如何解决并排查 Node 节点的健康状态?不急,我们先来聊聊关于关于 Pod 的生命周期状态。

image
  • Pending:该阶段表示已经被 Kubernetes 所接受,但是容器还没有被创建,正在被 kube 进行资源调度。
  • 1:图中数字 1 是表示在被 kube 资源调度成功后,开始进行容器的创建,但是在这个阶段是会出现容器创建失败的现象
  • Waiting或ContainerCreating:这两个原因就在于容器创建过程中镜像拉取失败,或者网络错误容器的状态就会发生转变。
  • Running:该阶段表示容器已经正常运行。
  • Failed:Pod 中的容器是以非 0 状态(非正常)状态退出的。
  • 2:阶段 2 可能出现的状态为CrashLoopBackOff,表示容器正常启动但是存在异常退出。
  • Succeeded:Pod 容器成功终止,并且不会再在重启。

上面的状态只是 Pod 生命周期中比较常见的状态,还有一些状态没有列举出来。

这。。。状态有点多。休息 3 秒钟

image

不过话又说回来&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值