我正在“v2/apps”REST 界面上使用 POST 创建 Marathon 应用程序。如果我尝试创建一个在底层 mesos 集群(在本例中为 host_port)上没有可用资源的应用程序,则应用程序创建仍会返回 S_OK,而应用程序将永远停留在部署状态(状态永远不会切换为运行)。
是否有办法在资源不可用(或至少)的情况下使应用程序创建 API 失败,以查询状态并确定应用程序由于资源耗尽而陷入部署困境而快速失败?
最佳答案
Marathon 是运行在 Mesos 之上的“第二层”调度程序。它仅暴露于 Mesos 分配给它的资源。 Marathon 没有全局集群 View ,因此它不知道请求的资源是否在集群中的某个位置可用或将来可用。
当您向 Marathon 提交应用程序时,它会验证请求、接受请求,并等待 Mesos 提供合适的报价。就您而言,您知道在不久的将来不会出现合适的报价(我想是因为有另一个任务使用该特定代理上的特定端口),但 Marathon 并不知道这一点。
关于mesosphere - 如何通过API识别由于资源耗尽导致Marathon App部署失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35446407/