繁体   English   中英

对 kube.netes 中的 500 个内部服务器进行故障排除

[英]Troubleshooting 500 internal server in kubernetes

我有一个使用 Azure Kube.netes 的应用程序。 一切正常,API 一直给我 200 个响应,但上周我开始从 API 管理部门收到 500 个内部服务器错误,这表明它是后端错误。 我在本地运行服务器并将请求发送到 API 并且它有效,所以我认为问题发生在 Azure Kube.netes 的某个地方。

然而,日志非常神秘,没有添加那么多信息,所以我从来没有真正发现问题所在。 我只是运行我的代码来再次部署图像,它得到了修复,但没有办法意识到这就是问题所在。

这次我设法解决了这个问题,但我正在寻找一种更好的方法来解决 Azure 中的 500 内部服务器错误。我已经查看了所有 Azure 文档,但除了日志之外没有发现任何东西,这不是真的对我有帮助。 go 关于在 Kube.netes 中运行的应用程序出现 500 错误时,您通常如何排查?

通常,这完全取决于您所处理的情况。 然而,您应该始终从查看日志(应用程序事件日志和服务器日志)开始。 尝试在其中查找有关错误的信息。 错误 500 实际上是结果,而不是原因。 如果您想找出可能导致错误的原因,您需要在日志中查找此信息。 很多时候,您可以说出哪里出了问题并立即解决问题。

如果您想重现该问题,请查看David Maze的评论:

我通常试图找出是什么触发了错误,在本地环境中重现它(不是 Kube.netes,不是 Docker,根本没有容器),调试,编写回归测试,修复错误,进行代码审查,重新部署。 这个过程并不是 Kube.netes 独有的; 这与我在无法直接访问远程系统的客户环境中或在我不想进一步破坏事物的生产环境中调试错误的方式相同。

也可以看看:

也许这与您的图像注册表有关?

可能是容器映像未针对与其通信的 pod 进行更新。 pod 日志可能会说明后端的哪一部分捕获了异常,但它可能与它应该与之通信的另一个 pod 相关联。

我在 Azure 中运行一个 K8s 集群并且有相同的 500 内部服务器错误,即使代码根本没有改变。 但是,我们最近更新了一个新的图像注册表,并且只有一个 api 的容器图像需要更新到新的。 我通过注意到这一行发现了这一点:

at KairosDbClient.RestClient.ThrowOnError(HttpResponse Message response)

需要更新的是 KairosDb pod 的客户端。

希望这在某种程度上有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM