i具有.net core中的 console app。如何实施kubernetes准备/livese探测器?
我的App Process RabbitMQ消息循环,不要听任何HTTP端口。
就绪探针对这种情况零有意义,因为您不会通过服务手段引导任何流量。当您的应用程序单独阅读RabbitMQ时,无论Kube探针如何,它都会这样做。尽管使用LIVISE探针有逻辑,但如果内部的过程以某种方式失败,您可能想重新启动容器。
您可以创建一个状态API端点,该端口将在某些端口上侦听HTTP请求,并在您的应用程序健康(您需要内部需要一些逻辑来定义健康含义)或使用基于命令的探测器来启动一个pround的情况下响应200命令将进行一些检查并报告容器是否正常。
在这种情况下,最好在同一吊舱中创建一个壁板容器。该容器将托管一个ASP.NET核心站点,特别是为了利用.NET Core 2.2中最近引入的新健康检查API。有用于监视RabbitMQ连接性的扩展。然后,您将公开ASP.NET核心网站进行健康检查。
ASP.NET核心健康蒙台
aspnetcore.healthchecks.rabbitmq
以下是一些不错的解决方案,可以将健康检查添加到NON-ASP应用程序(例如,Console应用程序):
在.NET Core Worker服务中进行健康检查
我建议实现TCP解决方案,因为它很小,但仍给出了预期的结果。