天天看點

嘗鮮 | 在Docker中運作你的Mesos叢集

本文講的是<b>嘗鮮 | 在Docker中運作你的Mesos叢集</b>,【編者的話】本文介紹了在Docker中運作Apache Mesos,Mesos官方網站提供了安裝包來直接運作它,但文中嘗試使用Docker來運作Mesos,Mesosphere也提供了相應的鏡像。在Docker中運作Mesos也有它的好處,讀者可以嘗試下。

在容器中安裝Mesos可以幫助我們解決一個非常實際的問題,我們可以在任意版本的主機系統上運作Mesos和它的架構,包括各種測試版本。因為基于容器,問題就轉化為隻需要在主機上運作不同的Docker鏡像。

讓我們來看一下配置過程的有趣部分,通過Docker來運作Mesos、Marathon和Zookeeper。

簡而言之,帶<code>MESOS_</code>字首的變量儲存配置的值,我們一般會寫到主機<code>/etc/mesos*</code>目錄下的配置檔案。

在叢集中的每台主機上運作主節點容器。

對于Mesos從節點,配置有點複雜,主要是需要確定從節點可以通路主機上的Docker背景程序(同一個背景程序用來運作這個Mesos從節點執行個體)。通過挂載<code>/var/run/docker.sock</code>檔案,<code>/usr/bin/docker</code>執行檔案和<code>/sys</code> 目錄(隻讀)到Mesos從節點容器實作。請注意,這還不是一個完美的解決方案,例如當從Marathon運作另一個Mesos架構,需要再進行細微調整。

在這個配置中,運作容器化的ZooKeeper需要一點小技巧。在第一個節點以“standalone” 模式運作,等其它所有節點ZooKeeper執行個體能連接配接到它并運作正常,ZooKeeper接着會自動重新配置它自己向所有節點同步。

因為我們想運作應用容器和其它架構,我們在Mesos之上安裝“datacenter init system” Marathon架構。

注意,我們指定Marathon UI 運作在8080端口,監聽5051端口。我們運作任意版本鏡像并傳遞兩個強制參數:

<code>master</code> – quorum hostname/ip and Mesos registration path

<code>zk</code> – quorum hostname/ip and Marathon registration path

這樣就可以在Docker容器中運作Mesos叢集的關鍵元件了。除了運作不同版本的元件,這個我們最大的動機,這種方式自然而然的帶來在叢集管理層次容器化的所有好處:快速部署,維護簡單和裝置可移植性。

原文釋出時間為:2015-09-04

本文作者:unodba

本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。

原文标題:嘗鮮 | 在Docker中運作你的Mesos叢集