中層馬拉松重啓任務,我每運行3個實例中運行的mesos集羣都mesos掌握和mesos-奴隸。我相信集羣要正確配置,並且能夠在所有三個實例上通過docker和marathon運行web應用程序。在所有情況下
我成立了一個詹金斯進行部署到集羣,並作爲最後的後工序馬拉松REST API來重新開始作業,但它失敗默默(簡單地停留在部署階段)。但是,如果應用程序在2個實例上運行,則重新啓動會順利進行。馬拉松是否需要一個實例未被佔用才能執行應用程序重新啓動?
我在這裏錯過了什麼嗎?
中層馬拉松重啓任務,我每運行3個實例中運行的mesos集羣都mesos掌握和mesos-奴隸。我相信集羣要正確配置,並且能夠在所有三個實例上通過docker和marathon運行web應用程序。在所有情況下
我成立了一個詹金斯進行部署到集羣,並作爲最後的後工序馬拉松REST API來重新開始作業,但它失敗默默(簡單地停留在部署階段)。但是,如果應用程序在2個實例上運行,則重新啓動會順利進行。馬拉松是否需要一個實例未被佔用才能執行應用程序重新啓動?
我在這裏錯過了什麼嗎?
是否有羣集足夠的資源? IIRC默認重新啓動行爲將首先啓動新版本,然後縮小的舊版本(因此你需要2個*應用程序資源)。 見Marathon Deployments for details和the 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意味着即使在升級過程中,也不會有比平常更多的容量用於新實例。只有當舊版本停止時,一個新的實例可以部署。
謝謝,讓我試試:) – Yerken
okie這確實是一個解決方案,非常感謝 – Yerken