根因解析 | Kubernetes Pod状态异常九大场景盘点

Kubernetes Pod 作为 Kubernetes 核心资源对象,不仅 Service、Controller、Workload 都是围绕它展开工作。作为最小调度单元的它,还担任着传统 IT 环境主机的职责,包含了调度,网络,存储,安全等能力。

正是因为 Pod 具有复杂的生命周期和依赖,绝大多数 Kubernetes 问题最终都会在 Pod 上表现出来。因此,我们介绍在实际工作实践中会遇到的 9 种典型场景,以及如何使用 Kubernetes 监控来处理这些场景,快速定位发现问题。

容器是用户进程,Pod 就像是机器,所以调度,网络,存储,安全等机器级别的异常以及进程运行的异常都会在 Pod 上面体现出来。围绕着 Pod 来说,有以下几个关键的点非常容易出现问题:

  • 调度

  • 镜像拉取

  • 磁盘挂载

  • Liveless/Readiness probe

  • postStart/preStop handler

  • 配置

  • 运行时 

那么,接下来我们来盘点一下相关常见的问题场景。

问题场景 1:就绪失败,即 Pod 一直无法到达 Ready 状态,无法接收请求进行业务处理。

常见的根因如下:

  • 资源不足,无法调度(Pending),即集群的 Node 没有预留资源能够满足 Pod 的 Request 资源;

  • 镜像拉取失败( ImagePullBackoff ),镜像的仓库地址,tag 出现问题;

  • 磁盘挂载失败(Pending),容器挂载的 PVC 没有 bound;

  • Liveless probe 探针失败,频繁重启;

  • Readiness probe 探针失败,无法达到 Ready 状态;

  • postStart 执行失败,一直无法进入运行状态;

  • 运行时程序崩溃( CrashLoopBackOff ),频繁重启;

  • 配置错误,比如挂载的 Volume 不存在(RunContainerError)。

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/125379709