如何处理错误配置的应用程序?

时间:2018-03-25 15:58:43

标签: kubernetes

通常我认为这是错误配置的应用程序的最佳做法,只需在启动时死亡,并提供描述问题的详细错误消息。

例如,如果缺少预期的环境变量,意味着应用程序无法正常运行,而不是让它在一个永远无法运行的僵尸状态下运行,我提倡大声失败并使用错误消息:

Critical Error: Environment variable [REDIS_HOST] not set.

在kubernetes中,这会以一个常量CrashLoop Backoff循环结束。由于pod不断重启并且日志消失,因此很难找到该错误消息,这并不是很好。

有关处理此问题的正确方法的任何想法或建议吗?

感谢

1 个答案:

答案 0 :(得分:1)

默认情况下,您可以通过写入/dev/termination-log来自定义容器的终止消息。当容器终止时,您可以使用kubectl get pods <podName> -o go-template="{{range .status.containerStatuses}}{{.lastState.terminated.message}}{{end}}"来检索邮件。有关此内容的更多信息,请访问here

您还可以使用kubectl logs <podName> -c <containerName> --previous查看Pod中特定容器的上一个实例的输出 - 这可能对您更有用,因为您不必更改应用程序以将错误消息写入/dev/termination-log