Mesosphere 如何通过API识别由于资源耗尽而导致的马拉松应用程序部署失败?

Mesosphere 如何通过API识别由于资源耗尽而导致的马拉松应用程序部署失败?,mesosphere,marathon,Mesosphere,Marathon,我正在使用“v2/apps”REST界面上的POST创建马拉松应用程序。如果我试图创建一个在底层mesos群集上没有可用资源的应用程序(在本例中为host_port),应用程序创建仍会返回一个S_OK,而应用程序永远处于部署状态(状态从不切换为running) 如果资源不可用(或至少不可用),是否有办法使应用程序创建API失败,以查询状态并确定应用程序由于资源耗尽而无法快速部署?Marathon是运行在Mesos之上的“第二层”计划程序。它只暴露于Mesos分配给它的资源。Marathon没有全

我正在使用“v2/apps”REST界面上的POST创建马拉松应用程序。如果我试图创建一个在底层mesos群集上没有可用资源的应用程序(在本例中为host_port),应用程序创建仍会返回一个S_OK,而应用程序永远处于部署状态(状态从不切换为running)

如果资源不可用(或至少不可用),是否有办法使应用程序创建API失败,以查询状态并确定应用程序由于资源耗尽而无法快速部署?

Marathon是运行在Mesos之上的“第二层”计划程序。它只暴露于Mesos分配给它的资源。Marathon没有全局集群视图,因此它不知道请求的资源是否在集群中的某个位置可用,或者将来是否可用


当您向Marathon提交应用程序时,它会验证请求,接受请求,并等待Mesos提供合适的服务。在您的情况下,您知道在不久的将来不会有合适的报价(我想是因为有另一个任务使用该特定代理上的特定端口),但Marathon没有意识到这一点。

以下是Marathon ui使用的状态:

您要查找的可能是
等待
状态,您可以通过查询
v2/queue
并检查
queueEntry.delay.逾期===true
来识别该状态

我刚刚构建了一些普罗米修斯(prometheus)的警报,以便针对类似的问题(如您所描述的问题)发出警报,请参见此处的MarathonappCangetSuitableOffers警报: