Kubernetes Pod 重启但日志为空,运维值班怎么定位
昨晚值班遇到一个比较烦的情况,服务在 Kubernetes 里反复重启,但 kubectl logs 只能看到空输出。业务同事一直问是不是程序没打日志,实际上 pod 连主进程都没稳定跑起来。 我先看 kubectl describe pod 的 Events,发现不是应用异常,而是 initContainer 挂在配置下载步骤。再查节点上的 ephemeral-storage,发现同节点另一个批处理任务把临时盘吃满,init 容器拉配置包时写不进去,退出得太早,所以业务容器根本没机会输出日志。处理上先 cordon 该节点,把批处理迁走,清掉残留临时文件,然后给 initContainer 加了资源限制和失败原因输出。 这类故障别上来就重启 deployment。我的经验是按顺序看 Events、exit code、node condition、init container,再决定要不…