通過Docker來部署Mesos集群

jopen 9年前發布 | 47K 次閱讀 Docker

Apache Mesos系統是一套資源管理調度集群系統,可以用來管理Docker集群,換個思路,本文介紹了如何通過Docker容器來部署一個單節點和多節點的 Mesos集群,整個過程非常簡單,只需要七個命令即可完成,整個步驟作者也記錄到了GitHub,推薦學習。

這篇文章將教你如何使用Docker容器部署一個單節點的 Mesos集群,整個部署過程非常簡單,只需要七個命令。在部署之前你需要準備一個裝有Docker的環境,這個非常簡單,我不贅述。我們總共需要啟動四個容器,分別是:

  • ZooKeeper
  • Meso Master
  • Marathon
  • Mesos Slave Container

如上面提到的,我們只需要一個可以運行的Docker Server,你可以通過任何你喜歡的方式來獲得Docker,比如在 本地的Vagrant中安裝Docker、使用 Boot2Docker、使用 CoreOS或者在AWS安裝。整個的部署過程我都放到了 GitHub上了,包括所有的容器構建的Dockerfile文件, 你可以本地去構建這些鏡像, 或者從Docker Hub上下載已經構建好的鏡像。我們所使用的是Docker Hub上的鏡像是:


部署步驟

第一步:獲取Docker Server的IP,并賦值到HOST_IP變量中,在接下來的步驟中我們還會用到。

root@docker-server:/# HOST_IP=10.11.31.7

第二步:啟動ZooKeeper容器。

docker run -d \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
garland/zookeeper

第三步: 啟動Mesos Master。

docker run --net="host" \
-p 5050:5050 \
-e "MESOS_HOSTNAME=${HOST_IP}" \
-e "MESOS_IP=${HOST_IP}" \
-e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_PORT=5050" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_QUORUM=1" \
-e "MESOS_REGISTRY=in_memory" \
-e "MESOS_WORK_DIR=/var/lib/mesos" \
-d \
garland/mesosphere-docker-mesos-master

第四步: 啟動Marathon。

docker run \
-d \
-p 8080:8080 \
garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon

第五步: 啟動Mesos Slave。

docker run -d \
--name mesos_slave_1 \
--entrypoint="mesos-slave" \
-e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_LOGGING_LEVEL=INFO" \
garland/mesosphere-docker-mesos-master:latest

第六步: 訪問 Mesos 頁面。
Mesos Web 頁面地址是:

http://${HOST_IP}:5050

通過Docker來部署Mesos集群

第七步: 通過Marathon的Web頁面啟動一個Job。Marathon Web頁面地址是:http://${HOST_IP}:8080。

Marathon 可以讓你部署長期運行的Job到Mesos Slave容器上, 這個可以幫助你去檢查你的集群是否啟動,并且處于running的狀態, 打開上面的地址后你會看到下面的頁面:

通過Docker來部署Mesos集群

點擊右上角的“New App”按鈕,創建一個新的Job/Task, 我們這里只是輸出一個”hello“到文件"/tmp/output.txt"里面,然后我們可以到容器中查看文件是否創建,并檢查下這個Job是不是一直在運行。

通過Docker來部署Mesos集群

第八步: 檢查Job/Task是不是在運行
接下來讓我們檢查下Job/Task是不是一直在Mesos Slave上面運行。
在Docker Server上運行下面的命令, 這個命令會讓你進到Mesos Slave 容器中,然后再使用tail命令查看/tmp/output.txt文件里面的內容。

docker exec -it mesos_slave_1 /bin/bash
root@ca83bf0ea76a:/# tail -f /tmp/output.txt

你會看到每隔一秒鐘“hello”就會被追加到這個文件中。

注意:多節點的Mesos環境部署步驟請參考 這里

原文鏈接:Deploy a Mesos Cluster with 7 Commands Using Docker(翻譯:左偉 校對:李穎杰)
來自:http://dockerone.com/article/136

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!