3

我正在使用 Kubernetes 的 K3s 发行版,它部署在 AWS 的 Spot EC2 实例上。

我已经安排了某个处理作业,有时这个作业被终止并进入“未知”状态(作业代码异常终止)

kubectl describe pod <pod_name>

它显示了这一点:

 State:          Terminated
      Reason:       Unknown
      Exit Code:    255
      Started:      Wed, 06 Jan 2021 21:13:29 +0000
      Finished:     Wed, 06 Jan 2021 23:33:46 +0000

AWS 日志显示崩溃前的 CPU 消耗为 99%。从多个来源(1 , 2 , 3)我看到这可能是节点崩溃的原因,但没有看到那个,可能是什么原因?

谢谢!

4

1 回答 1

2

Job 的实际状态是TerminatedUnknown原因的。为了调试这种情况,您需要从您的 Job 创建的 Pod 中获取相关日志。

当 Job 完成时,不会再创建 Pod,但也不会删除 Pod。保留它们允许您仍然查看已完成 pod 的日志以检查错误、警告或其他诊断输出。

为此,请执行kubectl describe job $JOB以查看“事件”部分下的 Pod 名称,然后执行kubectl logs $POD

如果这还不够,您可以尝试不同的方式来Debug Pods,例如:

  • 使用容器 exec 进行调试

  • 使用临时调试容器进行调试,或

  • 通过节点上的 shell 进行调试

上述方法将为您提供更多信息,以延迟工作终止背后的实际原因。

于 2021-01-07T12:30:13.097 回答