我的Pod由于未知原因自动获得SIGTERM。无法找到SIGTERM从kubelet发送到我的pod的根本原因是需要解决的问题。当我运行kubectl describe podname -n namespace时,在events部分中只有killing event存在。我没有看到任何不健康的状态之前杀死事件。有没有什么方法可以进一步调试pod的事件或任何特定的日志文件,我们可以在其中找到发送SIGTERM的原因?我尝试在事件上执行kubectl describe(killing),但似乎没有这样的命令来进一步挖掘事件。任何其他的方法来调试这个问题是赞赏.提前感谢!kubectl desribe pods snippet
2条答案
按热度按时间nnvyjq4y1#
请分享您的部署的yaml,以便我们可以尝试复制您的问题。
根据您所附的屏幕截图,看起来您的就绪探测器反复未能完成(它没有运行并失败,它完全未能完成),因此集群将其杀死。
不知道你的docker镜像在做什么,很难从这里调试。
作为调试的第一点,您可以尝试执行
kubectl logs -f -n {namespace} {pod-name}
来查看pod在做什么,看看它是否出错了。错误
Client.Timeout exceeded while waiting for headers
意味着你的容器正在代理某个东西?所以也许你试图代理的上游没有React。brccelvz2#
pod获得SIGTERM意味着探测失败,k8s调度程序已向pod发出死亡信号,因此您应该检查以下内容
initialDelaySeconds
for liveliness probe will help