前面已經介紹和使用可以在Marathon Framework上啟動Tomcat service在Mesos slave上,現在會遇到一個問題就是如果我啟動很多個tomcat service在不同的Mesos slave上,我要如何的知道哪些Mesos slave上是有啟動tomcat service?如果有一個tomcat service當掉我要連到哪一台?要如何使到負載平衡?……等等的問題就會發生出來,其實它可以透過mesos dns解決這些問題,我們只要知道Domain name的位址就可以連線,而不用使用IP的方式連線,以上是Mesos DNS的系統架構圖:
參考網址:https://github.com/mesosphere/mesos-dns
上圖就是mesos dns的架構圖,其實它的架構不會很複雜,主要是Mesos DNS要設定跟Mesos Master連結起來,然後Mesos DNS就會搜集和建立每個Service name和IP對應的記錄產生一張表,之後Client只要輸入Domain name就可以連結到tomcat service,另外mesos dns也可以和其它外部的dns整合起來。
以下就是Mesos DNS的安裝如下:
安裝前準備:
1、啟動zookeepr,可以參考Day5
2、啟動Mesos master,可以參考Day5
3、啟動Mesos slave,可以參考Day5
安裝Mesos DNS:
因為我的環境資源有限,所以我是直接把Mesos DNS安裝在Mesos Master的VM上
1、首先要先下載mesos dns,如下圖:
wget https://github.com/mesosphere/mesos-dns/releases/download/v0.6.0/mesos-dns-v0.6.0-linux-amd64
2、需要建立建立mesos dns的設定檔如下:
使用vi mesos-dns.conf
打開文字編輯器,輸入以上內容
zk:主要是您的mesos master的zookeeper位址
domain:未來連線會用到格式會是xxxx.mesos.idv
port:mesos dns的port為53
resolvers:如果mesos dns無法解析的位址就會傳給外部的DNS解析
還有其它的設定參數可以參考以下的網址:
https://mesosphere.github.io/mesos-dns/docs/configuration-parameters.html
3、啟動Mesos DNS:
上面的指令主要是先修改權限使得mesos-dns能夠執行。
執行mesos dns的方式是使用背景的方式執行,使用者關閉終端機還是會繼續執行。
以上是今天所介紹Mesos DNS的架構和安裝的方式,明天就會在Client設定DNS的IP,並且透過瀏灠器連線tomcat service的方式是使用domain name的方式而不是用IP位址。
參考資料:
Mesos DNS:https://mesosphere.github.io/mesos-dns/docs/configuration-parameters.html
Mesos DNS架構圖:
https://github.com/mesosphere/mesos-dns