docker - Unhealthy 与 Degraded .NET 健康检查状态有什么区别
问题描述
我有一个在 Kubernetes 中运行的应用程序。为了在不停机的情况下利用滚动更新,我必须实施适当的健康检查,这样集群才能知道应用程序/容器何时准备好处理请求。
我正在尝试使用新的 ASP.NET Code 2.2 Healthchecks功能。
我应该返回一个Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult
包含应用程序状态的结构。
这个结构有 3 个静态方法,我可以用来返回这个状态:
- 健康
- 不良
- 降级
在哪些情况下我应该使用 Unhealthy vs Degraded 应用程序不正常?举几个例子就好了。
解决方案
“降级”检查可用于成功但缓慢或不稳定的检查。例如,一个简单的数据库查询确实成功了,但花了一秒钟多的时间。在问题解决之前,将流量转移到另一个实例可能是个好主意。
“不健康”检查意味着该组件根本不工作。例如,无法建立到 Redis 缓存的连接。重启实例可以解决这个问题。
引用博文:
一个失败的活性探测说:应用程序已经崩溃。您应该将其关闭并重新启动。
失败的就绪探测表明:应用程序正常,但尚未准备好为流量提供服务。
您可以说“降级”健康检查映射到“就绪”探测,而“不健康”检查映射到“活跃度”探测。
推荐阅读
- postgresql - 我可以调试从外部源发送的无法编辑的 PostgreSQL 查询吗?
- macos - 显示非零退出代码的 launchctl 进程
- linux - 在 Go 中使用目录观察器时等到文件完成复制
- python - 为什么网格在编辑模式下没有跟随骨架,如何获得被骨架变形的网格上的点坐标?
- php - MYSQL SELECT 最后 5 个结果,然后按日期排序这 5 个?
- python - 具有初始化值的嵌套 FOR 循环,但继续整个列表范围
- javascript - Jsoup 到 POST 登录
- python - python用自定义文本绘制图形
- html - Flex Box Divs 堆叠而不是水平
- java - 使用java从方法返回子字符串