2015-10-14 96 views
2

我正在尋找解決方案來運行大量任務並監視羣集上的狀態。在羣集上運行大量任務

詳細說明:每個任務由包含docker的每個進程組成(每個進程是docker run命令)。所有進程必須在同一臺服務器上運行。

我們正在討論的任務數量是一次突發數百個任務。

我已經研究過基於Mesos幾種解決方案,所有的人:

  • 的Chronos - 似乎將高負載下,在任何情況下動搖更針對經常性(的cron)作業。雖然我需要一次性(重)工作。
  • 自定義Mesos FW - 似乎爲我的需求低層次將需要我編寫調度和重試機制,我會保存這是最後的手段。
  • Aurora - 這看起來很有前途,因爲每個任務都在同一個節點上運行,並由多個進程組成。雖然我在這裏錯過了一些,但Aurora似乎無法作爲單個作業的一部分運行多個任務。由於我的任務都與不同的輸入類似,我可以使用包含多個(比如400個)實例的單個作業,每個任務的第一個進程(其作用是從S3下載輸入)可以根據實例ID下載不同的集合。這給我帶來了另一個問題:我找不到在.aurora文件中使用{{mesos.instance}}的示例,任何人都可以給我一個例子嗎?

感謝所有的魚人

回答

2

你也可能對Kubernetes看(這也可以作爲一個framework in Mesos運行)。 Kubernetes的概念是Pods,它們基本上是一組共同定位的容器。因此,在您的情況下,吊艙將包含3-4個工藝/容器,然後這些吊艙可以放大/縮小。

關於你提到的其他解決方案短註釋:

  • 的Chronos:不是針對你的使用情況
  • 定製FW:其實沒有那麼難,但良好的通話保存這個作爲最後的手段。
  • 極光:非常強大,但也是複雜的框架
  • Marathon(你沒有提到):針對長時間運行的應用程序,可以輕鬆地擴大和縮小。
+0

首先,謝謝 至於Marathon,我知道它是Mesos的一種init.d。 我不是在尋找一種服務,而是在尋找和應用程序。所以我認爲它不適合。 –

+0

同意,只要記住,如果它總是需要少量的實例運行,然後在某些事件中爆發(即增加實例的數量),那麼它可能也很有趣。 – js84

1

除了出色的對方的回答,您可以檢查出兩個Sigma的Cook,他們只是在最近纔開源,但一直使用督促大規模一會兒。

+0

很好的建議,我個人還沒有測試過它:-)。協同定位約束似乎很好地映射到kubernetes豆莢,並沒有發現廚師是否具有相似的基元。 – js84