docker - Unhealthy 和 Degraded .NET 健康检查状态有什么区别

标签 docker asp.net-core kubernetes .net-core health-monitoring

我有一个在 Kubernetes 中运行的应用程序。为了在不停机的情况下利用滚动更新,我必须实现适当的健康检查,以便集群可以知道应用程序/容器何时准备好处理请求。

我正在尝试使用 new ASP.NET Code 2.2 Healthchecks特征。

我应该返回一个 Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult结构与应用程序的状态。

这个结构有 3 个静态方法,我可以用来返回这个状态:

  • 健康
  • 不健康
  • 降级

  • 在哪些情况下应用程序不适合我应该使用 Unhealthy vs Degraded?举几个例子就好了。

    最佳答案

    “降级”检查可用于成功但缓慢或不稳定的检查。例如。一个简单的数据库查询确实成功了,但花了一秒钟多。在问题解决之前,将流量转移到另一个实例可能是一个好主意。

    “不健康”检查意味着该组件根本不工作。例如。无法建立到 Redis 缓存的连接。重启实例可以解决这个问题。

    引用博文:

    A failed liveness probe says: The application has crashed. You should shut it down and restart.

    A failed readiness probe says: The application is OK but not yet ready to serve traffic.



    您可以说“降级”健康检查映射到“就绪”探测器,“不健康”检查映射到“活性”探测器。

    关于docker - Unhealthy 和 Degraded .NET 健康检查状态有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52027674/

    相关文章:

    Docker 容器无法解析 DNS 以到达另一台 AWS Ec2 机器

    tomcat - Docker 官方 Tomcat Image 修改 Server.xml 并将 jar 添加到 lib 文件夹

    mysql - 访问在 Google Cloud VM 实例上的 docker 容器中运行的 MySQL 数据库

    c# - 无法在 Dot Net Core 中使用 System.Management.dll

    kubernetes - 优先购买通知如何处理?

    kubernetes - Kubernetes,例如Apache或Nginx虚拟主机

    docker - 如何在Arch Linux中启用Docker的 “--squash”功能?

    c# - 在不同的项目中实现相同的接口(interface)

    c# - 如何在 MainLayout 中获取输入参数?

    kubernetes 挂起的 pod 优先级