Asp.net core 为liveness probe openshift的非api项目创建健康检查

Asp.net core 为liveness probe openshift的非api项目创建健康检查,asp.net-core,.net-core,openshift,Asp.net Core,.net Core,Openshift,我有一个项目只使用来自Rabbit MQ的消息,我使用的是NetCore2.1。。我只是用托管服务创建了一个“控制台应用程序”,一切都很好 现在我需要将其部署到Openshift并配置Liveness Probe,因此我有两个选项: 在我的应用程序中创建一个API,以便在调用/health URL时作出响应。请记住,我的项目中没有ASP.NET核心依赖项,因为/health URL,我需要添加很多依赖项。反模式可能 让Liveness Probe在我的POD中执行一个命令(比如ps-eaf),以

我有一个项目只使用来自Rabbit MQ的消息,我使用的是NetCore2.1。。我只是用托管服务创建了一个“控制台应用程序”,一切都很好

现在我需要将其部署到Openshift并配置Liveness Probe,因此我有两个选项:

  • 在我的应用程序中创建一个API,以便在调用/health URL时作出响应。请记住,我的项目中没有ASP.NET核心依赖项,因为/health URL,我需要添加很多依赖项。反模式可能

  • 让Liveness Probe在我的POD中执行一个命令(比如
    ps-eaf
    ),以检查我的应用程序是否正在运行。我真的认为这可能会返回一个“假阳性”,并且不太准确,比如/健康


  • 那么,对于使用Openshift Liveness Probe的工作人员来说,什么是最好的解决方案和最常用的解决方案呢?

    与kestrel相比,HttpListener是一个重量较轻的选项,如果它只是用于健康检查

    您也可以直接指向您的索引页。它不需要一些特殊的API端点,它只需要一个成功的HTTP代码,我只有一个控制台应用程序,我没有kestrel或httpSys或其他东西。我需要启动它。所以它只是一个CLI应用程序?它在干什么?您并不真的希望LivenessProbe测试端到端功能,您只想确保它正在运行并完成它的工作,无论是侦听http、发送输出还是其他)。如果你的应用程序还没有做http,那么添加API端点可能有点过头了是的,这就是我的观点。仅仅为了健康而创建http是过分的。但是我想知道在控制台应用程序中授予liveness probe的更好方法是什么我认为最好的做法是使用LivenessProbe,但是我们甚至不能开始告诉您如何实现它的最佳实践,因为它实际上取决于您的应用程序体系结构。从k8s文档中可以看出,“许多长时间运行的应用程序最终会转变为中断状态,除非重新启动,否则无法恢复。Kubernetes提供了活动性探测来检测和修复此类情况。”。因此,无论什么对您的应用程序有意义。如果不是HTTP响应,可能会提供一个特殊参数,在运行时返回一些信息?这不是问题所在,请使用kestrel或httplisterner或其他方法。我想知道,遵循最佳实践,这是否是使用openshift的更好方法。