運維人必看|Mesos分布式集羣管理最佳實踐

Mesos最開始由加州大學伯克利分校開發,推廣於美國版的微博Twitter

是Apache下的開源分佈式資源管理框架,

它被稱為分佈式系統的內核,相當於人的大腦。

Mesos-Master是整個系統的“大腦”,負責管理接入Mesos的各個framework(由frameworks_manager管理)和slave(由slaves_manager管理),並將slave上的資源按照某種策略分配給framework(由獨立插拔模塊Allocator管理)。

運維人必看|Mesos分佈式集群管理最佳實踐

示意圖

Mesos-Slave負責接受並執行來自“大腦”的命令。Mesos-Slave將自己的資源量發送給“大腦”,由大腦來分配給Framework。

Framework是指外部的計算框架。需要通過調度器,以註冊的方式接入Mesos,獲得資源。再把獲得的資源,由自己的調度器分配給框架中的任務。

運維人必看|Mesos分佈式集群管理最佳實踐

運維人必看|Mesos分佈式集群管理最佳實踐

示意圖

當前Mesos支持三中語言編寫的調度器,分別是C++、Java、Python。為了統一,Mesos用C++組成了的一個調度驅動drive。Framework(外部的計算框架)可以通過這個接口來註冊,獲得資源。

Executor主要用於啟動框架內部的task。由於不同的框架,啟動task的接口或者方式不同,當一個新的框架要接入mesos時,需要編寫一個Executor,告訴Mesos如何啟動該框架中的task

運維人必看|Mesos分佈式集群管理最佳實踐

運維人必看|Mesos分佈式集群管理最佳實踐

展示了Mesos的重要組成部分,Mesos由一個master進程管理運行著每個客戶端節點的slave進程和跑任務的Mesos計算框架。

Mesos進程通過Framework(計算框架)可以很細緻的管理cpu和內存等,從而提供資源。master通過插件機制新增額一個allocation模塊使之分配資源更簡單方便。

運維人必看|Mesos分佈式集群管理最佳實踐

運維人必看|Mesos分佈式集群管理最佳實踐

圖1.2

流程步驟

1、slave1報告給master他擁有4核cpu和4G剩餘內存,Marathon調用allocation政策模塊,告訴slave1計算框架1應該被提供可用的資源。

2、master給計算框架1發送一個在slave上可用的資源描述。

3、計算框架的調度器回覆給master運行在slave上兩個任務相關信息,任務1需要使用2個CPU,內存1G,任務2需使用1個CPU,2G內存。

4、最後,master發送任務給slave,分配適當的給計算框架執行器,繼續發起兩個任務(圖1.1-2虛線處),因為任有1個CPU和1G內存未分配,allocation模塊現在或許提供剩下的資源給計算框架2。

除此之外,當任務完成,新的資源成為空閒時,這個資源提供程序將會重複。

這些非常有用的資料,是由金信潤天的王牌講師“標杆徐”老師進行整理,歡迎大家可以學好架構,找到一份滿意的高薪工作。


分享到:


相關文章: