当前位置:   article > 正文

Mesos+Zookeeper+Marathon的Docker管理平台部署_yum -y install mesos marathon mesosphere-zookeeper

yum -y install mesos marathon mesosphere-zookeeper
  1. 1)Mesos:Mesos采用与Linux kernerl相同的机制,只是运行在不同的抽象层次上。Mesos kernel利用资源管理和调度的API在整个数据中心或云环境中运行和提供引用(例如,Hadoop,Spark,Kafaka,Elastic Search)。
  2. 2)Zookeeper:zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
  3. 3)Marathon:marathon是一个mesos框架,能够支持运行长服务,比如web应用等。是集群的分布式Init.d,能够原样运行任何Linux二进制发布版本,如Tomcat Play等等,可以集群的多进程管理。也是一种私有的Pass,实现服务的发现,为部署提供提供REST API服务,有授权和SSL、配置约束,通过HAProxy实现服务发现和负载平衡
  4. 4)Docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

1)服务器架构

机器信息如下: 

 

  1. 这里部署的机器为3个Mastser控制节点,3个Slave运行节点,其中:
  2. zookeeper、Mesos-master、marathon运行在Master端;Mesos-slave和docker运行在Slave端;需要修改zk的内容来保证slave能够被master发现和管理
  3. 这里为了测试方便,全部采用centos7版本系统。当然,在实际生产环境中,也不一定非要要求master和slave端的服务器版本一致,不一样的版本系统也可以。
  4. (当机器数量没有这么多比如只有两台机器的情况下,可以将一台机器即作为Mesos-Master也作为Mesos-Slave,另一台作为Mesos-Slave,也就是一主两从的结构)

 为了直观的理解,简单的画了一张架构图:

2)配置mesos-master(3台master节点都要操作) 

  1. 1)关闭防火墙和selinux
  2. 关闭防火墙
  3. 关闭firewall:CentOS 7.0默认使用的是firewall作为防火墙
  4. systemctl stop firewalld.service #停止firewall
  5. systemctl disable firewalld.service #禁止firewall开机启动
  6. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  7. 关闭selinux
  8. [root@master-1 ~]# vi /etc/sysconfig/selinux
  9. SELINUX=disabled
  10. [root@master-1 ~]# setenforce 0 #临时关闭。reboot重启机器后,使得上面配置生效,就永久关闭selinux了
  11. [root@master-1 ~]# getenforce
  12. Permissive
  13. 如果不关闭,需要开启2181,5050,8080端口
  14. [root@master-1 ~]# vim /etc/sysconfig/iptables
  15. .......
  16. -A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
  17. -A INPUT -p tcp -m state --state NEW -m tcp --dport 5050 -j ACCEPT
  18. -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
  19. 2)添加mesos的yum源
  20. [root@master-1 ~]# rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
  21. 3)安装mesos,marathon,zookeeper
  22. [root@master-1 ~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk #安装依赖的JDK环境
  23. [root@master-1 ~]# yum -y install mesos marathon mesosphere-zookeeper
  24. 3)安装mesos,marathon,zookeeper
  25. [root@master-1 ~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk #安装依赖的JDK环境
  26. [root@master-1 ~]# yum -y install mesos marathon mesosphere-zookeeper
  27. 4)配置zookeeper
  28. 设置文件/var/lib/zookeeper/myid为当前mesos master节点的id,id必须为1-255之中的整数.
  29. master-1机器设置id为"1"
  30. [root@master-1 ~]# echo 1 > /var/lib/zookeeper/myid
  31. master-2机器设置id为"2"
  32. [root@master-2 ~]# echo 2 > /var/lib/zookeeper/myid
  33. master-3机器设置id为"3"
  34. [root@master-3 ~]# echo 3 > /var/lib/zookeeper/myid
  35. [root@master-1 ~]# cp /etc/zookeeper/conf/zoo.cfg /etc/zookeeper/conf/zoo.cfg.bak
  36. [root@master-1 ~]# vi /etc/zookeeper/conf/zoo.cfg
  37. maxClientCnxns=50 #单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是50,如果设置为0,那么表明不作任何限制。请注意这个限制的使用范围,仅仅是单台客户端机器与单台ZK服务器之间的连接数限制,不是针对指定客户端IP,也不是ZK集群的连接数限制,也不是单台ZK对所有客户端的连接数限制。
  38. tickTime=2000 #Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳
  39. #Zookeeper的Leader 接受客户端(Follower)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10
  40. syncLimit=5 #表示 Leader 与 Follower 之间发送消息时请求和应答时间长度,最长不能超过多少个tickTime 的时间长度,总的时间长度就是 2*2000=4
  41. dataDir=/var/lib/zookeeper #zookeeper数据文件存放目录
  42. clientPort=2181 #客户端连接端口
  43. server.1=182.48.115.233:2888:3888 #数字1,2,3表示这个是第几号服务器(是上面myid文件里对应的数字);中间的是master主节点的ip地址
  44. server.2=182.48.115.235:2888:3888 #第一个端口2888(这个端口可以自己定义)表示的是这个服务器与集群中的 Leader 服务器交换信息的端口
  45. server.3=182.48.115.236:2888:3888 #第二个端口3888表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
  46. [root@master-1 ~]# vi /etc/mesos/zk #完全替换原来内容
  47. zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/mesos
  48. 设置文件/etc/master-/quorum内容为一个大于(master节点数除以2)的整数。即采用四舍五入,比如这里有3个master节点,那么3/2=1.5,四舍五入为2
  49. 设置文件/etc/master-/quorum内容为一个大于(master节点数除以2)的整数。即采用四舍五入,比如这里有3个master节点,那么3/2=1.5,四舍五入为2
  50. [root@master-1 ~]# echo 2 >/etc/mesos-master/quorum
  51. [root@master-1 ~]# cat /etc/mesos-master/quorum
  52. 2
  53. 5)配置mesos和marathon
  54. 主机名和ip要在hosts中写入,最好不要使用localhost,否则会出现slave不能识别,以及marathon任务下发不正常等现象。
  55. master-1机器
  56. [root@master-1 ~]# mkdir -p /etc/marathon/conf
  57. [root@master-1 ~]# echo 182.48.115.233 > /etc/mesos-master/hostname
  58. [root@master-1 ~]# echo 182.48.115.233 > /etc/marathon/conf/hostname
  59. [root@master-1 ~]# hostnamectl --static set-hostname master-1.com
  60. [root@master-1 ~]# echo "182.48.115.233 master-1 master-1.com" >/etc/hosts
  61. [root@master-1 ~]# cat /etc/hosts
  62. 182.48.115.233 master-1 master-1.com
  63. master-2机器
  64. [root@master-2 ~]# mkdir -p /etc/marathon/conf
  65. [root@master-2 ~]# echo 182.48.115.235 > /etc/mesos-master/hostname
  66. [root@master-2 ~]# echo 182.48.115.235 > /etc/marathon/conf/hostname
  67. [root@master-2 ~]# hostnamectl --static set-hostname master-2.com
  68. [root@master-2 ~]# echo "182.48.115.235 master-2 master-2.com" >/etc/hosts
  69. [root@master-2 ~]# cat /etc/hosts
  70. 182.48.115.235 master-2 master-2.com
  71. master-3机器
  72. [root@master-3 ~]# mkdir -p /etc/marathon/conf
  73. [root@master-3 ~]# echo 182.48.115.236 > /etc/mesos-master/hostname
  74. [root@master-3 ~]# echo 182.48.115.236 > /etc/marathon/conf/hostname
  75. [root@master-3 ~]# hostnamectl --static set-hostname master-3.com
  76. [root@master-3 ~]# echo "182.48.115.236 master-3 master-3.com" >/etc/hosts
  77. [root@master-3 ~]# cat /etc/hosts
  78. 182.48.115.236 master-3 master-3.com
  79. [root@master-1 ~]# cp /etc/mesos/zk /etc/marathon/conf/master
  80. [root@master-1 ~]# cp /etc/mesos/zk /etc/marathon/conf/zk
  81. [root@master-1 ~]# sed -i 's|mesos|marathon|g' /etc/marathon/conf/zk
  82. 6)启动mesos,marathon,zookeeper
  83. [root@master-1 ~]# systemctl enable zookeeper && systemctl enable mesos-master && systemctl enable marathon
  84. [root@master-1 ~]# systemctl start zookeeper && systemctl start mesos-master && systemctl start marathon
  85. [root@master-1 ~]# systemctl disable mesos-slave
  86. 查看进程状态
  87. [root@master-1 ~]# systemctl status zookeeper
  88. [root@master-1 ~]# systemctl status mesos-master
  89. [root@master-1 ~]# systemctl status marathon
  90. [root@master-1 ~]# lsof -i:2181 #会显示相关信息如果没有就启动失败 zookeeper占有端口号
  91. [root@master-1 ~]# lsof -i:5050 #会显示相关信息如果没有就启动失败 mesos占有端口号
  92. [root@master-1 ~]# lsof -i:8080 #会显示相关信息如果没有就启动失败 marathon占有端口号
  93. 如果marathon服务启动失败
  94. [root@master-1 ~]#vi /etc/default/marathon
  95. MARATHON_MASTER="zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/mesos"
  96. MARATHON_ZK="zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/marathon"
  97. MARATHON_MESOS_USER="root"
  98. 7)检查配置
  99. 配置过程中出错,为了方便检查对比各master配置,直接执行如下命令
  100. [root@master-1 ~]# cat /var/lib/zookeeper/myid && tail -6 /etc/zookeeper/conf/zoo.cfg && cat /etc/mesos/zk && cat /etc/mesos-master/quorum && cat /etc/mesos-master/hostname&& cat /etc/marathon/conf/hostname&& cat /etc/marathon/conf/master&&cat /etc/marathon/conf/zk
  101. 1
  102. syncLimit=5
  103. dataDir=/var/lib/zookeeper
  104. clientPort=2181
  105. server.1=182.48.115.233:2888:3888
  106. server.2=182.48.115.235:2888:3888
  107. server.3=182.48.115.236:2888:3888
  108. zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/mesos
  109. 2
  110. 182.48.115.233
  111. 182.48.115.233
  112. zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/mesos
  113. zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/marathon
  114. --------------------------------------------------------------------------------------------------------
  115. 温馨提示:
  116. 1) 还可以创建 /etc/mesos-master/cluster 文件,写入集群的别名。
  117. 2)主机名最好不要轻易更换,否则会导致mesos启动失败!更换主机名后,最好彻底卸载并删除源数据,然后重新部署
  118. # yum remove mesos marathon mesosphere-zookeeper
  119. # rm -rf /etc/mesos*
  120. # rm -rf /etc/marathon*
  121. # rm -rf /var/lib/zookeeper*
  122. # rm -rf /etc/zookeeper*
  123. # rm -rf /var/lib/mesos* #源数据目录
  124. # yum -y install mesos marathon mesosphere-zookeeper
  125. 3)以上操作后,master节点机不能ping通外网,是因为DNS解析文件被改变了,执行下面命令即可:
  126. [root@master-1 local]# echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  127. [root@master-1 local]# ping www.baidu.com
  128. PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
  129. 64 bytes from 14.215.177.38: icmp_seq=1 ttl=53 time=38.3 ms

 3)配置slave节点(3台slave节点都要操作)

  1. 1)关闭防火墙和selinux
  2. 关闭防火墙
  3. 关闭firewall:CentOS 7.0默认使用的是firewall作为防火墙
  4. systemctl stop firewalld.service #停止firewall
  5. systemctl disable firewalld.service #禁止firewall开机启动
  6. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  7. 关闭selinux
  8. [root@master-1 ~]# vi /etc/sysconfig/selinux
  9. SELINUX=disabled
  10. [root@master-1 ~]# setenforce 0 #临时关闭。reboot重启机器后,使得上面配置生效,就永久关闭selinux了
  11. [root@master-1 ~]# getenforce
  12. Permissive
  13. 如果不关闭,需要开启5051端口
  14. [root@slave-1 ~]# vi /etc/sysconfig/iptables
  15. .......
  16. -A INPUT -p tcp -m state --state NEW -m tcp --dport 5051 -j ACCEPTT
  17. [root@slave-1 ~]# systemctl restart iptables.service
  18. 2)安装docker,安装后启动docker
  19. [root@slave-1 ~]# yum install -y docker
  20. [root@slave-1 ~]# systemctl enable docker
  21. [root@slave-1 ~]# systemctl start docker
  22. 拉取镜像(三台slave节点机都需要下载镜像,因为在marathon界面里创建docker容器,是随机在slave节点机上读取镜像创建的)
  23. [root@slave-1 ~]# docker pull nginx
  24. [root@slave-1 ~]# docker pull tomcat
  25. [root@slave-1 ~]# docker images
  26. REPOSITORY TAG IMAGE ID CREATED SIZE
  27. docker.io/tomcat latest 08f8166740f8 4 days ago 366.7 MB
  28. docker.io/nginx latest 46102226f2fd 2 weeks ago 109.4 MB
  29. 3)添加mesos的yum源
  30. [root@slave-1 ~]# rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
  31. 4)安装mesos
  32. [root@slave-1 ~]# yum -y install mesos
  33. 5)配置master信息
  34. slave-1机器
  35. [root@slave-1 ~]# echo 182.48.115.237 > /etc/mesos-slave/hostname
  36. [root@slave-1 ~]# hostnamectl --static set-hostname slave-1.com
  37. [root@slave-1 ~]# echo "182.48.115.237 slave-1 slave-1.com" >/etc/hosts
  38. [root@slave-1 ~]# cat /etc/hosts
  39. 182.48.115.237 slave-1 slave-1.com
  40. slave-2机器
  41. [root@slave-2 ~]# echo 182.48.115.238 > /etc/mesos-slave/hostname
  42. [root@slave-2 ~]# hostnamectl --static set-hostname slave-2.com
  43. [root@slave-2 ~]# echo "182.48.115.238 slave-2 slave-2.com" >/etc/hosts
  44. [root@slave-2 ~]# cat /etc/hosts
  45. 182.48.115.238 slave-2 slave-2.com
  46. slave-3机器
  47. [root@slave-3 ~]# echo 182.48.115.239 > /etc/mesos-slave/hostname
  48. [root@slave-3 ~]# hostnamectl --static set-hostname slave-3.com
  49. [root@slave-3 ~]# echo "182.48.115.239 slave-3 slave-3.com" >/etc/hosts
  50. [root@slave-3 ~]# cat /etc/hosts
  51. 182.48.115.239 slave-3 slave-3.com
  52. [root@slave-1 ~]# vim /etc/mesos/zk
  53. zk://182.48.115.233:2181,182.48.115.235:2181,182.48.115.236:2181/mesos
  54. 配置marathon调用mesos运行docker容器
  55. [root@slave-1 ~]# echo 'docker,mesos' > /etc/mesos-slave/containerizers
  56. 6)启动slave(要保证mesos-slave启动后,读取的zk信息是那三个mesos-master的连接信息,否则mesos访问页面里就不会出现这个slave节点信息。ps -ef|grep mesos-slave)
  57. [root@slave-1 ~]# systemctl start mesos-slave && systemctl enable mesos-slave
  58. [root@slave-1 ~]# systemctl disable mesos-master
  59. -------------------------------------------------------------------------------------------------------
  60. 温馨提示:
  61. 1)以上操作后,master节点机不能ping通外网,是因为DNS解析文件被改变了,执行下面命令即可:
  62. [root@slave-1 ~]#echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  63. [root@slave-1 ~]# ping www.baidu.com
  64. PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
  65. 64 bytes from 14.215.177.38: icmp_seq=1 ttl=53 time=38.3 ms
  66. .......
  67. 2)如果mesos-slave启动失败,可以如下检查:
  68. [root@slave-1 ~]# journalctl -f -u mesos-slave #journalctl -f -u mesos-master可以检查master端的
  69. mesos-slave启动失败(比如主机名改变导致),可以删除源数据,卸载干净,然后重新安装部署
  70. # yum remove mesos
  71. # rm -rf /etc/mesos*
  72. # rm -rf /var/lib/mesos* #源数据目录是/var/lib/mesos/meta
  73. # yum install mesos

4)访问web管理页面 

访问mesos的管理页面,即访问http://master_ip:5050
注意:master_ip是这3个master中的任意一个就行,经过zookeeper选主,会自动跳到了leader的页面,如图mesos的leader为182.48.115.236(即master3被选为leader master)

在Frameworks中已经能够识别marathon,此时marathon的leader为182.48.115.236.
注意:mesos和marathon都是有zookeeper来选举leader,但是选主过程彼此独立,就是mesos的leader和marathon的leader可以不一样。如图这里二者通过zookeeper选出的leader是同一台机器(即都是master3:182.48.115.236)

 点击"Agents",发现已经能够识别出三个slave。
注意:这里访问mesos显示的是"Agents"选项,老版本的mesos显示的是”Salve“选项

点击上面3个slave中的任意一个,也能看出它的master是182.48.115.236 

 

访问marathon的管理页面,http://master_ip:8080
这里的master_ip就是在上面访问mesos页面Frameworks中识别出的marathon,即http://182.48.115.236:8080
或者直接点击mesos访问页面Frameworks中识别出的marathon也可以 

 或者点击下图标红的marathon(即zookeeper选出的主marathon),可以出现marathon的管理界面

 5)通过Mesos调度,使用marathon来创建容器

 比如创建一个nginx镜像的Docker容器,Marathon启动时会读取/etc/mesos/zk配置文件,Marathon通过Zookeeper来找到Mesos Master。
Marathon有自己的REST API,我们通过API的方式来创建一个Nginx的Docker容器。

首先创建一个json文件(这个要在master节点机器上创建,任意一台master节点机上都可以):

  1. [root@master-1 ~]# vi nginx.json #nginx的docker镜像要提前创建或下载
  2. {
  3. "id":"nginx",
  4. "cpus":0.2,
  5. "mem":32.0,
  6. "instances": 1,
  7. "constraints": [["hostname", "UNIQUE",""]],
  8. "container": {
  9. "type":"DOCKER",
  10. "docker": {
  11. "image": "docker.io/nginx", #这个nginx镜像是在slave节点机上通过"docker images"查看到的,镜像名不能写错
  12. "network": "BRIDGE",
  13. "portMappings": [
  14. {"containerPort": 80, "hostPort": 0,"servicePort": 0, "protocol": "tcp" }
  15. ]
  16. }
  17. }
  18. }

 接着使用curl的方式调用。注意上面的nginx.json文件是在/root路径下的(注意下面命令中json文件路径)。

  1. [root@master-1 ~]# curl -X POST http://182.48.115.233:8080/v2/apps -d @/root/nginx.json -H "Content-type: application/json"

登陆marathon界面查看是在哪一台slave机器上创建的docker容器实例(这个是随机的),点击"running"。(如果容器创建失败,即非"running"状态,可以尝试重启slave节点的docker服务) 

 

 如上截图中可知,这个nginx容器是在slave3节点机(182.48.115.239)上创建的(注意:如果slave3节点机宕机或docker服务重启,那么这个nginx容器就会自动漂移到其他的slave节点机上;另外,通过上面方式创建好的容器,在单个slave节点机上删除后,容器也会自动转移到其他slave节点机器上,这样就实现了在slave节点出现故障时容器自动转移的高可用功能)。可以登陆slave3机器查看所创建的容器,如下可知:访问Docker随机启动的端口是31782

  1. [root@slave-3 ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. b35fff88051e docker.io/nginx "nginx -g 'daemon off" 14 minutes ago Up 14 minutes 0.0.0.0:31782->80/tcp mesos-6bc17bcc-433c-425e-b85e-232ffa42fe4f-S5.f1a121be-2e79-4856-bd5c-576db3497fba

 访问所创建的nginx容器。(marathon ui界面里创建的docker容器映射到宿主机的访问端口默认都是随机分配的(BRIDGE模式))、可以自己制作应用的docker镜像,或者自定义构建容器并提交为新镜像(自己设定应用容器结构),然后根据自己制作的镜像在Marathon上创建应用。

接着访问mesos页面,可以看到"Active Tasks"有刚才创建的nginx任务了。(注意:只有当mesos访问界面"Active Tasks"里有容器创建任务时,才说明此容器真正创建成功了) 

 删除marathon创建的docker实例。如下图,点击"Destory"即可删除。

 然后登陆slave3机器,发现在服务器上,这个容器只是被关闭了(docker ps -a),可以选择删除。如果再次在机器上启动这个nginx容器,那么在marathon上是不会显示的。注意:在节点机器上手动创建的docker容器,这些容器信息是不会在marathon和mesos里展示的。

  1. [root@slave-3 ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. [root@slave-3 ~]# docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. b35fff88051e docker.io/nginx "nginx -g 'daemon off" 30 minutes ago Exited (0) About a minute ago mesos-6bc17bcc-433c-425e-b85e-232ffa42fe4f-S5.f1a121be-2e79-4856-bd5c-576db3497fba
  6. [root@slave-3 ~]# docker rm b35fff88051e
  7. b35fff88051e

如上在marathon界面里"Destory"删除对应的application后,在mesos界面的"Active Tasks"里的对应任务也会删除 

 

另外要注意:在marathon界面里通过调用mesos创建docker容器,只能创建应用容器(Application),如nginx、tomcat、mysql、redis等,需要映射端口,这里是映射的是宿主机的随机端口。不能创建基本centos,ubuntu的系统容器! 

 ----------------------------------------------------------------------------------------------------------------------------------------
可以直接在marathon界面里手动创建docker应用容器:

然后填写创建容器的配置信息,如下图,可以点击"New Application"创建页面右上角的"JSON Mode"模式,将上面创建nginx容器的json文件复制到这里 

 

 

 这样,就可以直接创建一个docker应用容器了。(复制写好的json文件到这里后,可以再次关闭"JSON Mode"模式,然后对比下所选用的配置)
下面我关闭"JSON mode"模式,手动选择配置信息去创建tomcat容器:

 

 

 

 

 

 

Marathon还可以对App应用实现手动扩缩的功能,选择"Scale Application"进行快速扩容。如下图,对上面已创建的tomcat应用容器进行扩展到2个Task(注意:这里有3个slave节点,那么扩展的Task实例最好是2个,3/2=1.5,即2个Instances;如果扩展多个Task,会发现多余的创建失败,这时候可以点击"Configuration"修改,修改成2个) 

 

 

 

查看容器创建的日志,可以在marathon界面里下载,也可以到mesos页面里查看或下载。如下图: 

 

 点击下面的日志"stderr"和"stdout"就会下载到本地。 

也可以到mesos页面查看或下载。点击下面mesos页面对应容器任务后面的"Sandbox" 

 

 

参考:https://blog.csdn.net/mnasd/article/details/79829154

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/501221
推荐阅读
相关标签
  

闽ICP备14008679号