sam*_*ers 10 docker dockerfile kubernetes-health-check health-check
docker文档说明了什么HEALTHCHECK
是指令以及如何检查容器的运行状况。但我无法弄清楚健康检查失败时会发生什么。就像按照用户指令重新启动或停止容器或这两者中的任何一个一样。
另外引用的例子是:
HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ || exit 1
是exit 1
关于什么的?
运行时HEALTHCKECKS
可以指定:
--interval=DURATION
(默认30秒)
--timeout=DURATION
(默认30秒)
--retries=N
(默认 3)
并且容器可以有三种状态:
\nstarting
\xe2\x80\x93 容器仍在启动时的初始状态。
healthy
\xe2\x80\x93 当命令成功时。
unhealthy
\xe2\x80\x93 当单次运行时间HEALTHCHECK
超过指定的超时时间时。发生这种情况时,它将重试,如果仍然失败,将被声明为“不健康”。
当检查连续失败指定次数时,失败的容器将:
\n如果处于独立模式,则保持“不健康”状态
\n如果处于Swarm 模式,请重新启动
\n否则,它将退出并显示错误代码 0,这意味着它被认为是“健康”的。
\n我希望它能让事情变得更加清楚。
\n我看过一个很好的视频,那个人解释得很好
https://youtu.be/dLBGoaMz7dQ
基本上,假设您在生产环境中运行一个 Web 服务器,并且它有 3 个副本。在部署过程中,您希望确保不会丢失任何请求。这HEALTHCHECK
基本上有助于识别服务器何时实际运行。您的服务器需要一两秒钟才能开始侦听,在这段时间内您可能会丢失请求。
通过使用HEALTHCHECKS
您可以确保服务器正在运行,这就是为什么有时人们使用CURL
(不是最佳实践)
归档时间: |
|
查看次数: |
7562 次 |
最近记录: |