首页 文章

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

提问于
浏览
1

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

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

Critical Error: Environment variable [REDIS_HOST] not set.

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

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

谢谢

1 回答

  • 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 .

相关问题