我在3个示例上运行一个mesos集群,每个示例同时运行mesos master和mesos slave。我相信集群配置正确,能够通过docker和marathon在所有三个示例上运行web应用程序。我设置了一个jenkins来执行到集群的部署,最后一步是发布到marathonrestapi来重新启动作业,但是它会无声地失败(只是停留在部署阶段)。但是,如果应用程序在两个示例上运行,则重新启动会顺利进行。marathon是否需要一个示例处于空闲状态才能执行应用程序重启?我是不是漏了什么?
ecr0jaav1#
你的群集中有足够的可用资源吗?iirc默认的重启行为将首先启动新版本,然后缩小旧版本(因此需要2*个应用程序资源)。有关详细信息,请参阅marathon部署和此处的升级策略部分。以下是升级策略的相关摘录:升级策略在升级过程中,应用程序的所有示例都将替换为新版本。升级策略控制马拉松如何停止旧版本并启动新版本。它由两个值组成:最小健康容量(可选。默认值:1.0)-0到1之间的数字,与示例计数相乘。这是不会牺牲整个应用程序目的的健康节点的最小数量。marathon将确保,在升级过程中,在任何时候,这个健康示例的数量都会增加。最大产能过剩(可选。默认值:1.0)-介于0和1之间的数字,与示例计数相乘。这是升级过程中任何时间点启动的附加示例的最大数量。默认的minimumhealthcapacity为1,这意味着在部署另一个健康的新版本之前,不能停止任何旧示例。值为0.5表示在升级过程中,先停止一半旧版本示例,以便为新版本腾出空间。值为0表示立即关闭所有示例并替换为新应用程序。默认的maximumovercapacity为1,这意味着在升级过程中所有旧示例和新示例可以共存。值为0.1意味着在升级过程中,旧示例和新示例的容量可能比平时多10%。值为0.0意味着即使在升级过程中,新示例也不能使用比通常更多的容量。只有在停止旧版本时,才能部署新示例。
1条答案
按热度按时间ecr0jaav1#
你的群集中有足够的可用资源吗?iirc默认的重启行为将首先启动新版本,然后缩小旧版本(因此需要2*个应用程序资源)。有关详细信息,请参阅marathon部署和此处的升级策略部分。
以下是升级策略的相关摘录:
升级策略
在升级过程中,应用程序的所有示例都将替换为新版本。升级策略控制马拉松如何停止旧版本并启动新版本。它由两个值组成:
最小健康容量(可选。默认值:1.0)-0到1之间的数字,与示例计数相乘。这是不会牺牲整个应用程序目的的健康节点的最小数量。marathon将确保,在升级过程中,在任何时候,这个健康示例的数量都会增加。
最大产能过剩(可选。默认值:1.0)-介于0和1之间的数字,与示例计数相乘。这是升级过程中任何时间点启动的附加示例的最大数量。
默认的minimumhealthcapacity为1,这意味着在部署另一个健康的新版本之前,不能停止任何旧示例。值为0.5表示在升级过程中,先停止一半旧版本示例,以便为新版本腾出空间。值为0表示立即关闭所有示例并替换为新应用程序。
默认的maximumovercapacity为1,这意味着在升级过程中所有旧示例和新示例可以共存。值为0.1意味着在升级过程中,旧示例和新示例的容量可能比平时多10%。值为0.0意味着即使在升级过程中,新示例也不能使用比通常更多的容量。只有在停止旧版本时,才能部署新示例。