状况检查

定义 DC/OS 服务的运行状况检查

在启动任务时立即开始运行状况检查。它们由 Mesos 在运行相应任务的代理节点上进行本地执行。运行状况检查的执行尽可能接近任务,因此它们不受网络故障的影响。运行状况检查将委派给运行任务的代理节点。这允许执行运行状况检查的任务数量与群集中的代理节点数量一起水平扩展。

  • 默认运行状况检查利用 Mesos 对任务状态 的了解。.
  • Marathon 通过 [REST API]health 提供任务资源的 (/mesosphere/dcos/cn/2.1/deploying-services/marathon-api/) 成员,您可以将其添加到服务定义中。

如果满足这两个条件,则视为运行状况检查:

  • timeoutSeconds 期间收到响应。如果任务连续失败超过 maxConsecutiveFailures 运行状况检查,则该任务将被终止。

您可以在 JSON 应用定义或 DC/OS GUI Services 选项卡中定义运行状况检查。您还可以定义要执行运行状况检查的自定义命令。这些可以在 Dockerfile 中定义,例如:

运行状况检查协议

  • MESOS_HTTP
  • MESOS_HTTPS

运行状况检查选项

创建服务时<>,您可以在 DC/OS GUI 中配置 JSON 运行状况检查,也可以直接配置为 JSON。此表显示同等的 GUI 字段和 JSON 选项。

例如,以下是在应用定义中指定为 JSON 的运行状况检查。

以下是使用 DC/OS UI 指定的相同运行状况检查。

图 1. Web 界面运行状况检查

部署使用命令运行状况检查的服务时,必须考虑运行状况检查本身消耗的资源。如果运行状况检查执行的命令要求运行大量 CPU 或内存,则应将这些资源添加到任务的资源需求上。在任务仅指定非常少 CPU 的情况下,即使是琐细的运行状况检查也会难以可靠运行,因此,至少应对任何使用命令运行状况检查的任务指定 1.0 CPU。

任务指定频繁运行状况检查而间隔时间只有几秒钟时,或者在一台计算机上运行命令运行状况检查的大量任务时,大量的运行状况检查可能会影响代理性能。测试表明,代理节点可能具有每秒运行大约 10-18 个运行状况检查的能力,具体取决于硬件。为了估算工作负载可在代理上运行的总运行状况检查率,可以执行如下计算:

更多信息

查看这篇博文 了解有关运行状况检查的更多信息。