2016-03-01 98 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