控制台应用程序中的Kubernetes准备/活性探测

时间:2017-12-17 18:49:51

标签: .net kubernetes console-application probe

我在.net核心中有一个控制台应用。 如何实施Kubernetes准备/活性探测?

我的应用程序循环处理rabbitmq消息,并且不要监听任何http端口。

3 个答案:

答案 0 :(得分:0)

准备探测对于这种情况没有任何意义,因为您不会通过服务方式指示任何流量。当您的应用程序自己读取rabbitmq时,无论kube探测器如何,它都会这样做。如果内部进程以某种方式失败,那么在使用活动探测时可能需要重新启动容器。

你可以创建一个状态api端点,它会在一些端口上侦听http请求,如果你的应用程序运行正常(你需要一些逻辑来定义健康意味着什么),或者使用基于命令的探测来启动命令将执行一些检查并报告容器是否正常。

答案 1 :(得分:0)

在这种情况下,最好在同一个容器中创建一个Sidecar容器。此容器将托管一个ASP.NET Core站点,专门用于利用.NET Core 2.2中最近引入的新运行状况检查api。有一些扩展可以监视rabbitmq连接。然后,您将公开ASP.NET Core网站以进行运行状况检查。

ASP.NET Core Health Montioring

AspNetCore.HealthChecks.Rabbitmq

答案 2 :(得分:0)

以下是向非 asp 应用程序(例如控制台应用程序)添加健康检查的一些不错的解决方案:

Performing a health check in .NET Core Worker Service

我建议实施 TCP 解决方案,因为它是最小的,但仍能提供预期的结果。