Pod 任务重启原因分析

现象:

kubectl get pods <任务名> 发现任务RESTARTS 大于1,说明任务重启过。
查看上次重启原因:
kubectl describe pods <任务名>


image.png

原因分析:

步骤1: 先查看Last State 原因是什么?

Pod --Error 状态
通常处于 Error 状态说明 Pod 启动过程中发生了错误。常见的原因包括

  • 依赖的 ConfigMap、Secret 或者 PV 等不存在
    请求的资源超过了管理员设置的限制,比如超过了 LimitRange 等
    违反集群的安全策略,比如违反了 PodSecurityPolicy 等
    容器无权操作集群内的资源,比如开启 RBAC 后,需要为 ServiceAccount 配置角色绑定
    参考:https://blog.csdn.net/wuli_smbug/article/details/103767136

可能的原因是请求资源超过了限制。

步骤2: 分析ExitCode 的含义

137:是由于内存不足导致,

可以查看到日志:ubuntu 的系统日志在 /var/log/syslog,centos 的系统日志在 /var/log/messages,都可以用 journalctl -k 来查看系统日志

通过日志,我查看到了OOMkiller 和通过OOM评分,选择评分最高,驱逐该Pod的整个过程。


image.png
image.png

上述日志说明内存超出了限制而导致任务驱逐。

参考:https://www.bookstack.cn/read/kubernetes-practice-guide/troubleshooting-trick-analysis-exitcode.md

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。