成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

docker必備—marathon基礎教程

開發 開發工具
目前越來越多的互聯網企業開始使用docker,但是隨著docker部署的增多,也發現了一些單純使用docker的弊端。例如命令行操作比較繁瑣,需要記的參數較多,在此介紹一個好用的解決這些弊端的工具——Marathon。

一、前言

目前越來越多的互聯網企業開始使用 docker,在這之前,虛擬機占據著大部分的企業市場,但是隨著 docker 部署的增多,也發現了一些單純使用 docker 的弊端。例如命令行操作比較繁瑣,需要記的參數較多,在此介紹一個好用的解決這些弊端的工具—— Marathon。

二、基本概念

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

ZooKeeper:ZooKeeper 是一個分布式的,開放源碼的分布式應用程序協調服務,是 Google的Chubby 一個開源的實現,是 Hadoop 和 HBase 的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、名字服務、分布式同步、組服務等。

Marathon:Marathon 是一個 Mesos 框架,能夠支持運行長服務,比如 Web 應用等。它是集群的分布式 Init.d,能夠原樣運行任何 Linux 二進制發布版本,如 Tomcat、Play 等等。它也是一種私有的 PaSS,實現服務的發現,為部署提供提供 REST API 服務,有授權和 SSL、配置約束,通過 HAProxy 實現服務發現和負載平衡。

docker必備—marathon基礎教程

三、部署

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

1. master搭建

  • 三臺 mesos master 服務器
  • ip地址分別是 10.100.0.21,10.100.0.22,10.100.0.23
  • 需要在master上分別部署 mesos mater , zookeeper , marathon

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

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 上執行下列命令

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 上執行下列命令

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服務器搭建

下面是 mesos 的 slave 服務器 模擬4臺,ip 地址是10.100.0.24 10.100.0.25 10.100.0.26 10.100.0.28。

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

  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上運行下面的命令

  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上運行下面的命令

  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上運行下面的命令

  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 的服務器的狀態:

mesos 的服務器的狀態

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

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

需要在 Docker Container 中輸入對應的 images:

需要在 Docker Container 中輸入對應的 images

還需要配置一下端口:

docker 很快就能啟動好。目前就啟動了一個實例:

如果現在需要多個,可以選擇 scale Application 數值調整到5:

可以瞬間運行多個容器:

五、關于擴容

scale Application 數值調整雖然能快速擴容,但是運行服務器的端口都是隨機的,如果需要手工添加就會比較麻煩,好在我們有一個新的工具來幫助我們,一個定制化的 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 變量的時候,添加2個變量:

  • HAPROXY_0_PORT=80
  • HAPROXY_GROUP=external

不管 scale 多少個容器, 都會通過 haproxy 的80端口代理 ,水平擴容非常的方便。

【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2010-06-11 13:53:54

UML建模

2017-07-18 10:14:23

OracleMerge into教程

2011-07-18 09:35:29

iPhone 框架

2009-07-22 13:32:43

iBATIS DAO

2011-09-13 16:39:50

Android UI設

2016-08-31 14:01:31

MySQL存儲數據庫

2009-09-17 10:45:03

CCNA基礎教程CCNA

2010-07-23 12:23:49

Perl基礎

2020-04-09 14:02:33

NginxHttps前端

2011-04-01 12:39:18

Android

2011-07-15 14:19:10

故障恢復控制臺

2015-03-25 12:09:18

TCP網絡協議TCP建立連接

2010-08-09 09:20:51

Flex程序設計

2011-08-30 17:37:32

打印機共享怎么設置共享打印機局域網

2017-03-20 14:51:33

2021-03-04 10:11:50

MongoDBSpring BootSpring Boot

2009-07-24 09:20:15

數組實例

2013-06-18 08:49:15

2009-06-22 09:23:18

事件監聽器

2009-08-01 20:59:08

ASP.NET服務器控ASP.NET服務器ASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕 在线观看 | 亚洲草草视频 | 国产亚洲一区二区三区 | 一区二区三区四区免费观看 | 成人羞羞国产免费视频 | 久久午夜精品福利一区二区 | 国产欧美日韩一区 | 韩日在线观看视频 | 成人黄色三级毛片 | 亚洲欧洲激情 | 91精品国产综合久久久久久 | 日韩精品一区二区三区中文字幕 | www日本高清 | av高清| 男人的天堂久久 | 久草视频观看 | 日韩成人在线观看 | 成人午夜免费福利视频 | 久热精品视频 | 国产一级一级国产 | 久久国品片 | 日韩欧美一区二区三区免费观看 | 永久www成人看片 | 久久精品久久久久久 | 成人免费一级 | 中文字幕99| 欧美日韩一区二区三区不卡视频 | 久久久国产精品入口麻豆 | 亚洲精品免费视频 | 日韩第一夜 | 99久久久久久久久 | 成人av网站在线观看 | 欧美三区| 在线激情视频 | 国产精品久久久久久久久久妞妞 | av网站免费观看 | 一区二区三区在线免费 | 欧美日韩国产在线观看 | 午夜精品久久久久久久99黑人 | 国产精品精品久久久 | 亚洲精品乱码久久久久久久久久 |