『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

商丘ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

Mesos是Apache下的開(kāi)源分布式資源管理框架,它被稱為是分布式系統(tǒng)的內(nèi)核。Mesos最初是由加州大學(xué)伯克利分校的AMPLab開(kāi)發(fā)的,后在Twitter得到廣泛使用。

初見(jiàn)

http://mesos.apache.org/
在你的數(shù)據(jù)中心 運(yùn)行數(shù)據(jù)(很多臺(tái)數(shù)據(jù)的集合),就像運(yùn)行在單個(gè)的資源池一樣
Mesos 抽象出來(lái)CPU,內(nèi)存,磁盤和其他計(jì)算機(jī)資源從物理機(jī)或者虛擬機(jī)中,使具有容錯(cuò)的和可伸縮的系統(tǒng)更容易的構(gòu)建和簡(jiǎn)單的運(yùn)行。如果是沒(méi)有基礎(chǔ)的老鐵,可能是認(rèn)為是直接把服務(wù)器的硬件插拔出來(lái)重新組建一臺(tái)新的機(jī)器,其實(shí)不是這樣的,他是通過(guò)軟件的方式把需要的硬件設(shè)備抽取出來(lái),統(tǒng)一的調(diào)度,合理的利用這些資源。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

發(fā)展歷程

  • 起源

    當(dāng)twitter才開(kāi)始的時(shí)候網(wǎng)站經(jīng)歷了爆炸式的增長(zhǎng),網(wǎng)站很不穩(wěn)定。經(jīng)常被流量擊垮,每次網(wǎng)站掛的時(shí)候都會(huì)出現(xiàn)下面這張圖片,看的多了大家都比較順眼了,導(dǎo)致這張圖也火了,“失敗之鯨”! 為了解決這個(gè)失敗之鯨的教育,twitter通過(guò)google的Borg系統(tǒng)中得到啟發(fā),然后就開(kāi)發(fā)一個(gè)類似的資源管理系統(tǒng)來(lái)幫助他們擺脫可怕的“失敗之鯨”!后來(lái)他們注意到加州大學(xué)伯克利分校AMPLab正在開(kāi)發(fā)的名為Mesos的項(xiàng)目,這個(gè)項(xiàng)目的負(fù)責(zé)人是Ben Hindman,Ben是加州大學(xué)伯克利分校的博士研究生。后來(lái)Ben Hindman加入了Twitter,負(fù)責(zé)開(kāi)發(fā)和部署Mesos。現(xiàn)在Mesos管理著Twitter超過(guò)30,0000臺(tái)服務(wù)器上的應(yīng)用部署。最后twitter把Mesos開(kāi)源給apache。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

  • 版本迭代

    保持一個(gè)月更新一個(gè)版本的頻率,知道今天也依然保持這這個(gè)頻率目前最新版本:1.7.0,由此也可以看到對(duì)市場(chǎng)的信心!

  1. 2013年1月份發(fā)布了0.12.1版本
  2. 中間經(jīng)歷了30多個(gè)版本
  3. 2016年7月份發(fā)布了1.0.0
  • 兩級(jí)調(diào)度

    Mesos是如何讓twitter擺脫失敗之鯨呢,查看下圖

    1. Mesos master是支持高可用集群的,通過(guò)zookeeper完成的主節(jié)點(diǎn)選舉
    2. Mesos master管理所有節(jié)點(diǎn)的Mesos slave的守護(hù)進(jìn)程
    3. Mesos slave運(yùn)行在物理機(jī)或者虛擬機(jī)之上。每個(gè)運(yùn)行具體的任務(wù)或者是服務(wù)
    4. 每個(gè)salve在啟動(dòng)的時(shí)候都會(huì)注冊(cè)是master
    5. master協(xié)調(diào)每個(gè)節(jié)點(diǎn)的slave,并且確定每個(gè)slave的可用資源
    6. 第一級(jí)調(diào)度 Hadoop 和Mpi ,master 調(diào)度slave
    7. 第二級(jí)調(diào)度 Framework的組件組成,大家看下下圖的虛線部分,F(xiàn)ramework包括調(diào)度器和執(zhí)行器兩部分,Master可以跟多種Framework進(jìn)行通信,上邊展示的調(diào)度器也就Hadoop 和 MPI,還可以用多種。下邊展示的是執(zhí)行器,執(zhí)行器運(yùn)行在slave中。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

  • 調(diào)度的流程

    看下圖

  1. slave1也就是Agent1告訴master空閑資源有4cpu,4gb
  2. Mesos觸發(fā)調(diào)度資源分配模塊,請(qǐng)求分配4cpu,4gb,F(xiàn)ramework1要求使用可用資源,然后master發(fā)出要約描述了slave1中所有的可用資源。4cpu,4gb內(nèi)存
  3. Famework的調(diào)度器給master說(shuō)需要在slave上運(yùn)行2個(gè)task,task1(2cpu,1gb)
    task2(1cpu,2gb)
  4. Mesos向slave下發(fā)任務(wù),并且分配適當(dāng)?shù)馁Y源,給Franmework的執(zhí)行器,接下來(lái)有執(zhí)行器啟動(dòng)這2個(gè)任務(wù),fw1,task1; fw2,task2;

這時(shí)候slave1 還剩余1cpu,1gb沒(méi)有被占用,還可以繼續(xù)分配給其他的任務(wù)來(lái)運(yùn)行,其實(shí)調(diào)度器就是給Mesos談判資源的,看看你有多少資源,需要運(yùn)行一個(gè)程序看看資源夠不夠,如果夠的話,我會(huì)告訴你我要在那臺(tái)機(jī)器上進(jìn)行運(yùn)行,然后把執(zhí)行器告訴master,master把執(zhí)行器告訴slave,在slave上執(zhí)行,執(zhí)行器其實(shí)可以理解為一段代碼,可以給master和slave對(duì)接的代碼。為了實(shí)現(xiàn)一個(gè)slave中運(yùn)行多個(gè)任務(wù),Mesos使用了隔離模塊,這模塊使用了進(jìn)程隔離的機(jī)制來(lái)運(yùn)行這些任務(wù)。Mesos早在09年就開(kāi)始使用了linux的隔離技術(shù),后來(lái)Mesos增加了對(duì)docker的支持,就可以使用docker本身的隔離機(jī)制,單不管使用什么隔離機(jī)制都需要執(zhí)行器全部的打包,并且發(fā)送給響應(yīng)的slave,slave上啟動(dòng)。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

Marathon

mesos 并不能單獨(dú)的存在,必要要有Framework配合存在,也知道m(xù)esos有各種各樣的Framework負(fù)責(zé)運(yùn)行各種各樣的程序,Marathon適合長(zhǎng)期運(yùn)行的項(xiàng)目(數(shù)據(jù)庫(kù),應(yīng)用服務(wù)等等),下面這個(gè)圖就是mesos+Marathon和linux內(nèi)核的對(duì)比。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

整合mesos marathon 負(fù)載均衡 服務(wù)發(fā)現(xiàn)的流程

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

Mesos特征

  • 強(qiáng)大的資源管理

    Mesos的核心,保證集群內(nèi)的所有用戶平等的使用資源,這里的資源包括內(nèi)存和CPU,磁盤等等。

  • Kernel 和Framework的分離

    Mesos只負(fù)責(zé)的資源的調(diào)度管理,各種程序都使用Mesos里面的資源,也可以自己來(lái)開(kāi)發(fā)Framework。

  • 門檻較低,易于使用

    門檻低是相對(duì)其他的服務(wù)編排工具,環(huán)境比較容易搭建按照文檔基本不會(huì)遇見(jiàn)大問(wèn)題,如果使用長(zhǎng)期運(yùn)行的服務(wù)可以使用Marathon這種服務(wù)就可以了。Marathon的環(huán)境搭建比較容易上手很快就搭建完畢了。如果你有特殊場(chǎng)景需要自己開(kāi)發(fā)Framework
    ,恭喜你老鐵你中獎(jiǎng)了,門檻太高!

  • 大廠使用

    twitter創(chuàng)始人30萬(wàn)以上的服務(wù)在使用,apple的集群,youtube也使用了。國(guó)內(nèi)的愛(ài)奇藝,數(shù)人科技也都使用的。

Marathon特征

  • 高可用

    支持集群

  • Constraints

    給機(jī)器打標(biāo)簽,CPU高,內(nèi)存高,硬盤好的,然后資源要約的時(shí)候給指定標(biāo)簽的機(jī)器。

  • 服務(wù)發(fā)現(xiàn)和負(fù)載均衡

    相當(dāng)于服務(wù)的注冊(cè)中心。

  • 健康檢查

    執(zhí)行調(diào)度器的時(shí)候,有針對(duì)機(jī)器的健康檢查的功能,包括三種方式:http,tcp,shell命令的,比如:web服務(wù)要加入基于http的健康檢查,訪問(wèn)固定的頁(yè)面,如果訪問(wèn)的是200的話,服務(wù)是沒(méi)問(wèn)題的。如果訪問(wèn)連續(xù)多少次發(fā)現(xiàn)不健康也就是不是200的情況,停止重新啟動(dòng)一個(gè)服務(wù)。

  • 事件訂閱

    自己?jiǎn)?dòng)一個(gè)服務(wù),注冊(cè)事件訂閱,它就會(huì)自動(dòng)的推送訂閱的事件信息,包括服務(wù)停止,被殺掉等等吧。

  • 完善的REST API

    比較好看的UI頁(yè)面,api接口提供給調(diào)用者查看服務(wù)的狀態(tài)。每個(gè)服務(wù)運(yùn)行的實(shí)例,每個(gè)實(shí)例的狀態(tài),可以通過(guò)腳本集成API。

PS:這就是對(duì)Mesos和marathon 大概的理解。

『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)

文章題目:『高級(jí)篇』docker之服務(wù)編排了解Mesos(22)
URL鏈接:http://muchs.cn/article4/jpggie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站建設(shè)小程序開(kāi)發(fā)、面包屑導(dǎo)航虛擬主機(jī)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)