通過Docker來部署Mesos集群
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
第七步: 通過Marathon的Web頁面啟動一個Job。Marathon Web頁面地址是:http://${HOST_IP}:8080。
Marathon 可以讓你部署長期運行的Job到Mesos Slave容器上, 這個可以幫助你去檢查你的集群是否啟動,并且處于running的狀態, 打開上面的地址后你會看到下面的頁面:
點擊右上角的“New App”按鈕,創建一個新的Job/Task, 我們這里只是輸出一個”hello“到文件"/tmp/output.txt"里面,然后我們可以到容器中查看文件是否創建,并檢查下這個Job是不是一直在運行。
第八步: 檢查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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!