【问题标题】:Mesosphere marathon restart task on all instances所有实例上的 Mesosphere 马拉松重启任务
【发布时间】:2016-03-02 03:30:12
【问题描述】:

我在 3 个实例上运行 mesos 集群,每个实例同时运行 mesos-master 和 mesos-slave。我相信集群配置正确,并且能够在所有三个实例上通过 docker 和 marathon 运行 Web 应用程序。

我设置了一个 Jenkins 来执行对集群的部署,并作为马拉松 REST API 的最后一步重新启动作业,但是它静默失败(只是卡在部署阶段)。但是,如果应用程序在 2 个实例上运行,则重启会顺利进行。马拉松是否需要一个实例空闲才能执行应用重启?

我在这里遗漏了什么吗?

【问题讨论】:

    标签: performance restart mesos marathon


    【解决方案1】:

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

    这里是the upgrade strategy的相关摘录:

    升级策略

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

    minimumHealthCapacity(可选。默认值:1.0)- 0 到 1 之间的数字乘以实例计数。这是不牺牲整体应用程序目的的健康节点的最小数量。 Marathon 将确保在升级过程中,在任何时间点,此数量的健康实例都会增加。

    maximumOverCapacity(可选。默认值:1.0)- 一个介于 0 和 1 之间的数字,与实例计数相乘。这是升级过程中任何时间点启动的最大额外实例数。

    默认 minimumHealthCapacity 为 1,这意味着在部署另一个健康的新版本之前不能停止旧实例。值 0.5 意味着在升级期间,一半的旧版本实例首先停止以为新版本腾出空间。值 0 表示立即关闭所有实例并替换为新应用程序。

    默认 maximumOverCapacity 为 1,表示升级过程中所有新旧实例都可以共存。值 0.1 表示在升级过程中,用于新旧实例的容量可能比平时多 10%。值 0.0 意味着即使在升级过程中,新实例也不会比平时使用更多的容量。只有停止旧版本,才能部署新实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多