2016-02-08 61 views

回答

1

從我的理解來看,Mantl是一個工具/應用程序的集合,它們連接在一起以創建一個基於Docker的連貫應用程序平臺。 Mantl理想地部署在虛擬化/雲環境(AWS,OpenStack,GCE)上,但我最近才能將它部署在裸機上。

Mantl的主要組件是Mesos,它管理docker,處理調度和任務隔離。 Marathon是一個mesos框架,用於管理長時間運行的任務,如Web服務,這是大多數應用程序駐留的地方。 mesos-marathon的組合處理應用程序的高可用性,彈性和負載平衡。把所有東西聯繫在一起是領事,負責處理服務發現。我使用領事爲每個應用程序進行查詢以相互溝通。 Mantl還包含用於日誌記錄的ELK堆棧,但我還沒有成功監視任何應用程序。 Chronos也有計劃任務處理ala cron。 Traefik充當反向代理,其中應用程序/服務端點映射到用於與外部服務進行通信的URL。

基本上,您的微服務應該在docker映像中自成一體,通過consul查找啓動通信並記錄到標準io中。然後,您使用Marathon API部署您的應用程序,並在Marathon UI中對其進行監控。在部署您的dockerized-app時,馬拉松將在您的領事中註冊您的碼頭圖像名稱以及其「暴露端口」。計劃任務應該部署在Chronos中,在那裏你將能夠監控正在運行的任務和待處理的計劃任務。

+0

感謝Pejal。目前我只關注Mesos(0.27.0)+馬拉松(0.15.1)。我能夠通過mesos slave等馬拉松來運行簡單的任務,比如文件創建等。但是,我無法從馬拉松用戶界面啓動mesos slave上的容器。任務失敗。你有什麼主意嗎 ? 設置是這樣的 - 3 mesos主人有領導人選舉動物園管理員。 1個安裝了docker的mesos-slave和一個ubuntu:14.04映像。 –