【问题标题】:Azure App Service container keeps restarting - "Container failed availability check."Azure 应用服务容器不断重启 - “容器可用性检查失败”。
【发布时间】:2019-10-02 13:41:43
【问题描述】:

抱歉,我无法为您提供可重现的示例,但我希望您能帮助我找出我的环境中出了什么问题。

我在 PC3 应用服务计划 (16GB RAM) 中运行基于 windows 容器 的 .NET 4.7 应用程序。该应用程序公开了一个 REST API,也是一个在某些 BlobStorage 事件上触发的 JobHost。

整个业务逻辑运行良好 - 它在本地运行没有任何问题,并且它还在 Azure 上运行了限制时间(1 - 5 分钟)。但是,不知何故,容器每 x 分钟重新启动一次,我无法弄清楚原因。

这是我在容器日志中看到的:

02/10/2019 12:23:46.142 INFO - Site: myapp - Container failed availability check. It has failed 122895 check(s). Container will be declared unavailable if it exceeds 3 consecutive failed checks.
02/10/2019 12:23:46.142 ERROR - Site: myapp - Container is unavailable.
02/10/2019 12:23:47.129 INFO - Site: myapp - Container failed availability check. It has failed 5 check(s). Container will be declared unavailable if it exceeds 3 consecutive failed checks.
02/10/2019 12:23:47.129 ERROR - Site: myapp - Container is unavailable.
....
02/10/2019 12:23:56.862 INFO - Site: myapp - Attempting to stop container: 310a7f2278cdb56...
02/10/2019 12:23:56.895 INFO - Site: myapp - Purging pending logs after stopping container
02/10/2019 12:23:56.895 INFO - Site: myapp - Container stopped successfully. Container Id: 310a7f2278cdb56....

我不知道可用性检查失败的原因。有人可以向我解释检查的工作原理以及我如何获得有关它失败原因的更多信息吗?

【问题讨论】:

  • 可能是这里配置的东西?! docs.microsoft.com/en-us/azure/azure-monitor/app/…
  • 你的意思是windows容器在本地可以正常工作吗?
  • 是的! @CharlesXu
  • 你使用哪个基础镜像?
  • @CharlesXu 我使用mcr.microsoft.com/dotnet/framework/runtime:4.7.2-windowsservercore-ltsc2019 基本图像。您能否进一步了解可用性检查的工作原理?

标签: .net azure docker containers


【解决方案1】:

应用服务平台通过尝试访问容器的 http 端点来定期检查容器的可用性。如果容器没有响应,或者响应时间超过 5 秒,我们假设可用性检查失败。如果连续 3 次失败,我们假设容器运行状况不佳,将其停止并重新启动。

如果您的应用程序是内存/资源密集型的,则容器可能无法在这些参数内做出响应。

我们引入了一些应用程序设置,您可以在应用程序上设置这些设置,使您能够在可用性检查失败时控制操作:

CONTAINER_AVAILABILITY_CHECK_MODE=修复

平台检查可用性并在连续 3 次可用性检查后停止并重新启动容器(默认)

CONTAINER_AVAILABILITY_CHECK_MODE=仅报告

平台检查可用性并在 3 次连续可用性检查后报告(在日志中)容器(默认)。平台不会停止/重启容器

CONTAINER_AVAILABILITY_CHECK_MODE=关闭

平台不检查可用性

我们还有一个Windows Containers on App Service wiki 用于您可能觉得有用的项目,这些项目目前尚未包含在我们的文档中。

【讨论】:

  • 那么如果多个容器以 MultiContainer 方式部署,那么一个容器失败会导致所有容器重启?
猜你喜欢
  • 2021-11-30
  • 2021-09-02
  • 2018-02-06
  • 2023-01-31
  • 2019-06-23
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
相关资源
最近更新 更多