日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
docker必備—marathon基礎(chǔ)教程

一、前言

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、海州網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、海州網(wǎng)絡(luò)營(yíng)銷、海州企業(yè)策劃、海州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供海州建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

目前越來越多的互聯(lián)網(wǎng)企業(yè)開始使用 docker,在這之前,虛擬機(jī)占據(jù)著大部分的企業(yè)市場(chǎng),但是隨著 docker 部署的增多,也發(fā)現(xiàn)了一些單純使用 docker 的弊端。例如命令行操作比較繁瑣,需要記的參數(shù)較多,在此介紹一個(gè)好用的解決這些弊端的工具—— Marathon。

二、基本概念

Mesos:Mesos 采用與 Linux Kernel 相同的機(jī)制,只是運(yùn)行在不同的抽象層次上。Mesos Kernel 利用資源管理和調(diào)度的 API 在整個(gè)數(shù)據(jù)中心或云環(huán)境中運(yùn)行和提供引用(例如, Hadoop、 Spark、Kafaka、Elastic Search)。

ZooKeeper:ZooKeeper 是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是 Google的Chubby 一個(gè)開源的實(shí)現(xiàn),是 Hadoop 和 HBase 的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。

Marathon:Marathon 是一個(gè) Mesos 框架,能夠支持運(yùn)行長(zhǎng)服務(wù),比如 Web 應(yīng)用等。它是集群的分布式 Init.d,能夠原樣運(yùn)行任何 Linux 二進(jìn)制發(fā)布版本,如 Tomcat、Play 等等。它也是一種私有的 PaSS,實(shí)現(xiàn)服務(wù)的發(fā)現(xiàn),為部署提供提供 REST API 服務(wù),有授權(quán)和 SSL、配置約束,通過 HAProxy 實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和負(fù)載平衡。

三、部署

為了部署的方便 全部使用 docker 部署。

1. master搭建

  • 三臺(tái) mesos master 服務(wù)器
  • ip地址分別是 10.100.0.21,10.100.0.22,10.100.0.23
  • 需要在master上分別部署 mesos mater , zookeeper , marathon

(1) 需要在10.100.0.21 上執(zhí)行下列命令 :

marathon

 
 
 
 
  1. docker run -d -e MARATHON_HOSTNAME=10.100.0.21 -e MARATHON_HTTPS_ADDRESS=10.100.0.21 -e MARATHON_HTTP_ADDRESS=10.100.0.21 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2 
  2. 181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon 

mesos-master

 
 
 
 
  1. HOST_IP=10.100.0.21 
  2.  docker run -d --name mesos-master1 --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 
  3. "MESOS_LOG_DIR=/var/log/mesos"   -e "MESOS_QUORUM=1"   -e "MESOS_REGISTRY=in_memory"   -e "MESOS_WORK_DIR=/var/lib/mesos"   mesoscloud/mesos-master 

zookeeper

 
 
 
 
  1. docker run -d -e MYID=1 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host  mesoscloud/zookeeper 

(2) 需要在10.100.0.22 上執(zhí)行下列命令

marathon

 
 
 
 
  1. docker run -d -e MARATHON_HOSTNAME=10.100.0.22 -e MARATHON_HTTPS_ADDRESS=10.100.0.22 -e MARATHON_HTTP_ADDRESS=10.100.0.22 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2 
  2. 181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon 

mesos-master

 
 
 
 
  1.  HOST_IP=10.100.0.22 
  2.  docker run -d --name mesos-master1 --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 
  3. "MESOS_LOG_DIR=/var/log/mesos"   -e "MESOS_QUORUM=1"   -e "MESOS_REGISTRY=in_memory"   -e "MESOS_WORK_DIR=/var/lib/mesos"   mesoscloud/mesos-master 

zookeeper

 
 
 
 
  1. docker run -d -e MYID=2 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host  mesoscloud/zookeeper 

(3) 需要在10.100.0.23 上執(zhí)行下列命令

marathon

 
 
 
 
  1. docker run -d -e MARATHON_HOSTNAME=10.100.0.23 -e MARATHON_HTTPS_ADDRESS=10.100.0.23 -e MARATHON_HTTP_ADDRESS=10.100.0.23 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2 
  2. 181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon 

mesos-master

 
 
 
 
  1. HOST_IP=10.100.0.23 
  2.  docker run -d --name mesos-master1 --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 
  3. "MESOS_LOG_DIR=/var/log/mesos"   -e "MESOS_QUORUM=1"   -e "MESOS_REGISTRY=in_memory"   -e "MESOS_WORK_DIR=/var/lib/mesos"   mesoscloud/mesos-master 

zookeeper

 
 
 
 
  1. docker run -d -e MYID=3 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host  mesoscloud/zookeeper 

這樣 mesos 的 master 就搭建完成。

2. slave服務(wù)器搭建

下面是 mesos 的 slave 服務(wù)器 模擬4臺(tái),ip 地址是10.100.0.24 10.100.0.25 10.100.0.26 10.100.0.28。

(1) 在10.100.0.24上運(yùn)行下面的命令

 
 
 
 
  1. docker run -d     --net=host     --pid=host     --privileged=true     --name=ms1     -v /usr/bin/docker:/usr/bin/docker     -v /dev:/dev     -v /var/run/docker.sock:/var/run/docker.sock     -v 
  2. /var/log/mesos:/var/log/mesos     -v /tmp/mesos:/tmp/mesos     -e MESOS_HOSTNAME=10.100.0.24     -e MESOS_IP=10.100.0.24     -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes 
  3. os     -e MESOS_CONTAINERIZERS=docker,mesos     mesoscloud/mesos-slave 

(2) 在10.100.0.25上運(yùn)行下面的命令

 
 
 
 
  1. docker run -d     --net=host     --pid=host     --privileged=true     --name=ms1     -v /usr/bin/docker:/usr/bin/docker     -v /dev:/dev     -v /var/run/docker.sock:/var/run/docker.sock     -v 
  2. /var/log/mesos:/var/log/mesos     -v /tmp/mesos:/tmp/mesos     -e MESOS_HOSTNAME=10.100.0.25     -e MESOS_IP=10.100.0.25     -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes 
  3. os     -e MESOS_CONTAINERIZERS=docker,mesos     mesoscloud/mesos-slave 

(3) 在10.100.0.26上運(yùn)行下面的命令

 
 
 
 
  1. docker run -d     --net=host     --pid=host     --privileged=true     --name=ms1     -v /usr/bin/docker:/usr/bin/docker     -v /dev:/dev     -v /var/run/docker.sock:/var/run/docker.sock     -v 
  2. /var/log/mesos:/var/log/mesos     -v /tmp/mesos:/tmp/mesos     -e MESOS_HOSTNAME=10.100.0.26     -e MESOS_IP=10.100.0.26     -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes 
  3. os     -e MESOS_CONTAINERIZERS=docker,mesos     mesoscloud/mesos-slave 

(4) 在10.100.0.28上運(yùn)行下面的命令

 
 
 
 
  1. docker run -d     --net=host     --pid=host     --privileged=true     --name=ms1     -v /usr/bin/docker:/usr/bin/docker     -v /dev:/dev     -v /var/run/docker.sock:/var/run/docker.sock     -v 
  2. /var/log/mesos:/var/log/mesos     -v /tmp/mesos:/tmp/mesos     -e MESOS_HOSTNAME=10.100.0.28     -e MESOS_IP=10.100.0.28     -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes 
  3. os     -e MESOS_CONTAINERIZERS=docker,mesos     mesoscloud/mesos-slave 

以上,搭建完成

四、查看

可以通過 http://${HOST_IP}:5050 查看 mesos 的服務(wù)器的狀態(tài):

使用 http://{HOST}:8080/ 來訪問 marathon:

需要在 Docker Container 中輸入對(duì)應(yīng)的 images:

還需要配置一下端口:

docker 很快就能啟動(dòng)好。目前就啟動(dòng)了一個(gè)實(shí)例:

如果現(xiàn)在需要多個(gè),可以選擇 scale Application 數(shù)值調(diào)整到5:

可以瞬間運(yùn)行多個(gè)容器:

五、關(guān)于擴(kuò)容

scale Application 數(shù)值調(diào)整雖然能快速擴(kuò)容,但是運(yùn)行服務(wù)器的端口都是隨機(jī)的,如果需要手工添加就會(huì)比較麻煩,好在我們有一個(gè)新的工具來幫助我們,一個(gè)定制化的 haproxy—— marathon-lb。

我們還是使用容器的方式來部署:

 
 
 
 
  1. docker run -d --privileged -e PORTS=9090 --net=host mesosphere/marathon-lb sse -m http://10.100.0.21:8080 -m http://10.100.0.22:8080 -m http://10.100.0.23:8080  --group external 

這樣我們就能通過 9090 端口訪問:

http://${HOST_IP}:9090/haproxy?stats

需要在配置 Environment Variables 變量的時(shí)候,添加2個(gè)變量:

  • HAPROXY_0_PORT=80
  • HAPROXY_GROUP=external

不管 scale 多少個(gè)容器, 都會(huì)通過 haproxy 的80端口代理 ,水平擴(kuò)容非常的方便。

【本文是專欄機(jī)構(gòu)“豈安科技”的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)通過微信公眾號(hào)(bigsec)聯(lián)系原作者】


網(wǎng)頁(yè)題目:docker必備—marathon基礎(chǔ)教程
文章源于:http://m.5511xx.com/article/dhcehpg.html