溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

初識(shí)數(shù)據(jù)中心Mesos

發(fā)布時(shí)間:2020-06-01 14:30:52 來源:網(wǎng)絡(luò) 閱讀:7221 作者:youerning 欄目:數(shù)據(jù)安全

 Docker的飛速發(fā)展已經(jīng)無需多言了,怎么管理Docker,編排Docker的也存在最夠多的工具,但是總覺得沒有觸及痛點(diǎn),所以才有數(shù)據(jù)中心mesos存在的必要,那么mesos是什么,以及mesos能做什么呢,會(huì)在本文簡要介紹。

 這里先放一張自己對(duì)于mesos的理解以及使用的思路,如有偏頗還望指正。

 初識(shí)數(shù)據(jù)中心Mesos

 根據(jù)上圖,我們將物理機(jī)全部納入mesos這個(gè)發(fā)布系統(tǒng)里面,這樣是個(gè)我們把手上的物理機(jī)資源全部抽象到了一起,這樣我們就不用擔(dān)心CPU,內(nèi)存,硬盤的使用情況,因?yàn)榈侥硞€(gè)應(yīng)用需要更多的資源的時(shí)候,我們可以直接動(dòng)態(tài)添加,我想光是這點(diǎn)就足夠讓我們躍躍欲試了吧,更重要的是我們不需要采購硬件配置一樣的服務(wù)器。

 前面這點(diǎn)內(nèi)容當(dāng)然不足夠說清mesos是什么,能做什么,在筆者看來,想要了解一樣?xùn)|西紙上談兵當(dāng)然是萬萬不能的,所以讓我們先把環(huán)境搭起來,用起來,這樣我想才能更加深刻的了解Mesos。


安裝:

系統(tǒng)環(huán)境:Centos7

mesos集群

172.16.51.72  mesos-master

172.16.51.72  mesos-slaver

172.16.51.71 mesos-slaver

172.16.51.73 mesos-slaver

 

zookeeper集群

172.16.51.72  1

172.16.51.71  2

172.16.51.73  3

 

注:iptables,selinux什么的當(dāng)然是關(guān)閉的

安裝方式rpm

 

rpm

rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm 


安裝mesos,marathonzookeeper

yum -yinstall mesos marathon
yum -yinstall mesosphere-zookeeper


配置zookeeper集群

72,71,73 myid依次配置為1,2,3,myid文件默認(rèn)不存在

cat /var/lib/zookeeper/myid
1


然后配置zookeeper配置文件

每個(gè)zookeeper節(jié)點(diǎn)加入下面三行 

cat /etc/zookeeper/conf/zoo.cfg
server.1=172.16.51.72:2888:3888
server.2=172.16.51.71:2888:3888
server.3=172.16.51.73:2888:3888


然后依次啟動(dòng)zookeeper

systemctlstart zookeeper

 

查看是否監(jiān)聽

lsof  -i:2181

 

mesos配置zookeeper信息(無論master還是slaver都要配置)

zk://172.161.51.72:2181,172.16.51.71:2181,172.16.51.73:2181/mesos

 


然后啟動(dòng)master

service mesos-master restart

 

啟動(dòng)slaver

service mesos-slave restart


很簡單有木有。

然后驗(yàn)證mesos,marathon是否安裝成功

訪問mesos-master主機(jī)50508080端口,如下圖


初識(shí)數(shù)據(jù)中心Mesos

初識(shí)數(shù)據(jù)中心Mesos

注意:如果是第一安裝完成,對(duì)應(yīng)的web頁面應(yīng)該是沒有任何任務(wù)的,比如上面的test


到這里可能就有疑問了,然后呢?

首先看看Mesos的架構(gòu)。

初識(shí)數(shù)據(jù)中心Mesos

 根據(jù)上面的示意圖再結(jié)合我們的已安裝環(huán)境,我們建立了三個(gè)mesos-slaver節(jié)點(diǎn),一個(gè)mesos-master端節(jié)點(diǎn)(其實(shí)mesos-master端也可以做一個(gè)集群)

之于上面的Hadoop,MPI scheduler我們先放一邊。

 zookeeper用于服務(wù)發(fā)現(xiàn)(這里我們做成集群模式,是為了高可用),所以無論是mesos-slaver或者mesos-master節(jié)點(diǎn)都需要設(shè)置zookeeper的配置信息,通過zookeeper,mesos-master會(huì)問mesos-slaver是哪些主機(jī)以及它的相關(guān)信息是什么,反之亦然。

 然后mesos-master會(huì)只會(huì)mesos-slaver它們需要做什么,怎么知道m(xù)esos-slaver能做什么呢?

 我們看下圖。



初識(shí)數(shù)據(jù)中心Mesos

 根據(jù)上圖,mesos-slaver會(huì)告訴mesos-master端自己有多少資源,比如多少cpu,內(nèi)存等,然后master-slaver決定怎么分配資源,怎么分配任務(wù),那么我們?cè)趺唇omesos索要資源及發(fā)布任務(wù)呢,那么我們就得知道什么是框架了,下面講解兩個(gè)主要的框架,marathon,chronos。

 什么是框架呢?就是用來索要源的,看看具體實(shí)例,你就會(huì)有一定了解了。

 Marathon是建立在Mesos上的私有PaaS平臺(tái)。它能自動(dòng)處理硬件或者件故障,并確保每個(gè)應(yīng)用程序都"遠(yuǎn)"(比如,你在marathon中設(shè)置是某應(yīng)用三個(gè)實(shí)例,那么其中一個(gè)掛掉,marathon會(huì)立即在啟一個(gè)實(shí)例,維持在三個(gè)實(shí)例),個(gè)人覺得跟kubernetes有點(diǎn)重疊的意思,當(dāng)然kubernetes更強(qiáng)大,因?yàn)榫幣诺哪芰Ω鼜?qiáng)。

 

默認(rèn)監(jiān)聽端口:8080

主要功能:創(chuàng)建常駐任務(wù),任務(wù)擴(kuò)建等(比如實(shí)例的數(shù)量增加)

 

創(chuàng)建JOB

初識(shí)數(shù)據(jù)中心Mesos 如上圖,我們創(chuàng)建一個(gè)ID為test的任務(wù),并且分配了0.1的CPU(默認(rèn)),16MB內(nèi)存(默認(rèn)),OMB硬盤(默認(rèn)),一個(gè)實(shí)例(默認(rèn)),然后這個(gè)實(shí)例執(zhí)行的命令python-m SimpleHTTPServer,然后點(diǎn)擊“create”即可,創(chuàng)建成功后,mesos-master就是隨機(jī)讓mesos-slaver就是創(chuàng)建一個(gè)實(shí)例。

 為了方便驗(yàn)證,我們可以將實(shí)例個(gè)數(shù)選為3,然后查看是否監(jiān)聽。

 然后驗(yàn)證一下。

 初識(shí)數(shù)據(jù)中心Mesos


注意:名字隨意,但是不跟現(xiàn)有的ID名沖突即可


然后看一看基本設(shè)置

ID設(shè)置

名字隨意,不跟現(xiàn)有的ID名沖突即可

 

CPU,內(nèi)存,硬盤,實(shí)例個(gè)數(shù)   (自定義)



CPU,內(nèi)存,硬盤,實(shí)例個(gè)數(shù)   (自定義)

 

執(zhí)行的command

比如用Python起一個(gè)簡單的web服務(wù)

python-m SimpleHTTPServer

 

Docker容器的相關(guān)設(shè)置

網(wǎng)絡(luò),數(shù)據(jù)卷等

 

環(huán)境變量如

JAVA_HOME= xxx

 

標(biāo)簽

自定義標(biāo)簽,用于分類

 

健康監(jiān)控

command,httptcp三個(gè)方式檢測(cè)

  

其他選項(xiàng)(optional settings)

如端口

還有最后一個(gè)限制constraint

比如限制哪個(gè)節(jié)點(diǎn)啟動(dòng)這個(gè)任務(wù)

 

 

創(chuàng)建成功,后點(diǎn)擊具體任務(wù),有相關(guān)信息,如主機(jī)端口等

mesos-master端也有相應(yīng)job信息

初識(shí)數(shù)據(jù)中心Mesos

  

下面是marathon的相關(guān)信息

初識(shí)數(shù)據(jù)中心Mesos

然后主要的三個(gè)動(dòng)作,分別是擴(kuò)展(比如一個(gè)實(shí)例到三個(gè)實(shí)例),重啟,掛起,銷毀

 

注:因?yàn)槔锩娴?/span>test任務(wù),寫的命令是python-m SimpleHTTPServer  所以都默認(rèn)監(jiān)聽8000端口,因?yàn)橹挥腥齻€(gè)節(jié)點(diǎn),所以最多啟三個(gè)實(shí)例,雖然可以將scale(規(guī)模)設(shè)置成3以上但是會(huì)不斷的啟新實(shí)例,然后不斷的失敗,并一直啟。

 

所以啟三個(gè)以上的實(shí)例應(yīng)該保證占用的端口不一樣

比如端口隨機(jī)

python-m SimpleHTTPServer $PORT

 

初識(shí)數(shù)據(jù)中心Mesos


因?yàn)閯?chuàng)建任務(wù)是支持Docker的,我們不妨想象一下,我們能夠直接將使用已有的docker環(huán)境中鏡像。


chronos是一個(gè)分布式作業(yè)調(diào)度程序,支持復(fù)的拓部結(jié)構(gòu)。它可以成 cron 的替代
品,提供更好的容錯(cuò)性。

 

chronos就是個(gè)計(jì)劃任務(wù),不過分布式而已

安裝

yum -y install chronos

servicechronos start

 

默認(rèn)監(jiān)聽4400

初識(shí)數(shù)據(jù)中心Mesos

 

比如

初識(shí)數(shù)據(jù)中心Mesos

cat /tmp/test2.txt
Sat Dec26 17:08:10 CST 2015

 

結(jié)語:既然是初始,那么久先到這里吧,筆者也還在研究中。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI