2016-03-01 73 views
1

中层马拉松重启任务,我每运行3个实例中运行的mesos集群都mesos掌握和mesos-奴隶。我相信集群要正确配置,并且能够在所有三个实例上通过docker和marathon运行web应用程序。在所有情况下

我成立了一个詹金斯进行部署到集群,并作为最后的后工序马拉松REST API来重新开始作业,但它失败默默(简单地停留在部署阶段)。但是,如果应用程序在2个实例上运行,则重新启动会顺利进行。马拉松是否需要一个实例未被占用才能执行应用程序重新启动?

我在这里错过了什么吗?

回答

3

是否有群集足够的资源? IIRC默认重新启动行为将首先启动新版本,然后缩小的旧版本(因此你需要2个*应用程序资源)。 见Marathon Deployments for detailsthe upgrade strategy section here

这里的相关摘自the upgrade strategy

upgradeStrategy

在升级过程中的应用程序的所有实例的一个新版本被替换。 upgradeStrategy控制Marathon如何停止旧版本并启动新版本。它由两个值组成:

minimumHealthCapacity: - 0和1之间的数字,被乘以实例计数(可选默认值1.0)。这是不会牺牲整体应用程序用途的健康节点的最小数量。在升级过程中,马拉松将确保在任何时候这些健康实例都已启动。

maximumOverCapacity(可选默认值:1.0) - 0和1之间的数,其被乘以实例计数。这是在升级过程中任何时间点启动的附加实例的最大数量。

默认minimumHealthCapacity是1,这意味着另一种健康的新版本部署前不旧的实例可以被停止。值为0.5意味着在升级过程中,先旧版本实例的一半停止首先为新版本腾出空间。值为0表示立即取消所有实例并替换为新的应用程序。

默认maximumOverCapacity是1,这意味着所有的新老实例可以在升级过程中共存。的0.1 A值意味着比通常升级过程10%以上的容量时,可以使用新老实例。值为0.0意味着即使在升级过程中,也不会有比平常更多的容量用于新实例。只有当旧版本停止时,一个新的实例可以部署。

+0

谢谢,让我试试:) – Yerken

+0

okie这确实是一个解决方案,非常感谢 – Yerken

相关问题