欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Apache Mesos和Marathon的Docker容器

程序员文章站 2024-02-22 09:44:40
...

Apache Mesos是由UC Berkeley开发的开源集群管理器。 它提供了隔离和跨分布式应用程序共享的资源。

该图显示了Mesos的主要组件。 Mesos由一个守护程序组成,该守护程序管理在每个群集节点上运行的守护程序。 Mesos框架是在Mesos上运行并在这些从站上运行任务的应用程序。 从站是物理机或虚拟机,通常来自同一提供商。

使用Apache Mesos和Marathon的Docker容器

Mesos使用两级调度机制,其中向框架提供资源 Mesos主节点决定提供每个框架多少资源,而每个框架确定它接受的资源以及在这些资源上执行什么应用程序。

Marathon是在Mesos上运行的容器编排平台。 支持多种容器格式 ,而Docker当然是最常见的一种!

该博客将展示如何设置Mesos,Marathon和运行简单的Docker映像。 此设置仅适用于勇敢者。 我一直对在幕后寻找感兴趣,这就是激发这篇文章的动机。 但是以后的文章将显示更加无缝的安装。

让我们开始吧!

配置CentOS VM

下载CentOS并配置VM,如下所示:

使用Apache Mesos和Marathon的Docker容器

安装组件

安装此设置所需的不同组件。

  • 配置Mesos存储库:
[aaa@qq.com ~]$ sudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
 
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
 
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
 
[sudo] password for arun:
Retrieving http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
warning: /var/tmp/rpm-tmp.9ssCDQ: Header V4 RSA/SHA1 Signature, key ID e56151bf: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mesosphere-el-repo-7-1           ################################# [100%]
  • 安装Mesos和Marathon:
[aaa@qq.com ~]$ sudo yum -y install mesos marathon
Loaded plugins: fastestmirror, langpacks
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
mesosphere                                               | 2.9 kB     00:00
mesosphere-noarch                                        | 2.9 kB     00:00
updates                                                  | 3.4 kB     00:00
(1/6): base/7/x86_64/group_gz                              | 155 kB   00:00
(2/6): extras/7/x86_64/primary_db                          | 117 kB   00:00
(3/6): mesosphere-noarch/primary_db                        | 2.5 kB   00:00
(4/6): mesosphere/x86_64/primary_db                        |  27 kB   00:00
(5/6): base/7/x86_64/primary_db                            | 5.3 MB   00:01
(6/6): updates/7/x86_64/primary_db                         | 4.1 MB   00:02
Determining fastest mirrors
 * base: mirror.supremebytes.com
 * extras: centos.den.host-engine.com
 * updates: mirror.hmc.edu
Resolving Dependencies
--> Running transaction check
---> Package marathon.x86_64 0:1.1.1-1.0.472.el7 will be installed
---> Package mesos.x86_64 0:0.28.1-2.0.20.centos701406 will be installed
--> Processing Dependency: subversion for package: mesos-0.28.1-2.0.20.centos701406.x86_64
--> Running transaction check
---> Package subversion.x86_64 0:1.7.14-10.el7 will be installed
--> Processing Dependency: subversion-libs(x86-64) = 1.7.14-10.el7 for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_wc-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_subr-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_repos-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_ra_svn-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_ra_neon-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_ra_local-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_ra-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_fs_util-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_fs_fs-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_fs_base-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_fs-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_diff-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_delta-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libsvn_client-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package subversion-libs.x86_64 0:1.7.14-10.el7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
================================================================================
 Package            Arch      Version                       Repository     Size
================================================================================
Installing:
 marathon           x86_64    1.1.1-1.0.472.el7             mesosphere     64 M
 mesos              x86_64    0.28.1-2.0.20.centos701406    mesosphere     30 M
Installing for dependencies:
 apr                x86_64    1.4.8-3.el7                   base          103 k
 apr-util           x86_64    1.5.2-6.el7                   base           92 k
 subversion         x86_64    1.7.14-10.el7                 base          1.0 M
 subversion-libs    x86_64    1.7.14-10.el7                 base          921 k
 
Transaction Summary
================================================================================
Install  2 Packages (+4 Dependent packages)
 
Total download size: 96 M
Installed size: 168 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/apr-1.4.8-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for apr-1.4.8-3.el7.x86_64.rpm is not installed
(1/6): apr-1.4.8-3.el7.x86_64.rpm                          | 103 kB   00:00
(2/6): apr-util-1.5.2-6.el7.x86_64.rpm                     |  92 kB   00:00
(3/6): subversion-1.7.14-10.el7.x86_64.rpm                 | 1.0 MB   00:00
(4/6): subversion-libs-1.7.14-10.el7.x86_64.rpm            | 921 kB   00:00
warning: /var/cache/yum/x86_64/7/mesosphere/packages/mesos-0.28.1-2.0.20.centos701406.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e56151bf: NOKEY
Public key for mesos-0.28.1-2.0.20.centos701406.x86_64.rpm is not installed
(5/6): mesos-0.28.1-2.0.20.centos701406.x86_64.rpm         |  30 MB   00:29
(6/6): marathon-1.1.1-1.0.472.el7.x86_64.rpm               |  64 MB   00:36
--------------------------------------------------------------------------------
Total                                              2.6 MB/s |  96 MB  00:36
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <aaa@qq.com>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere
Importing GPG key 0xE56151BF:
 Userid     : "Mesosphere Archive Automatic Signing Key <aaa@qq.com>"
 Fingerprint: 8102 6d00 04c4 4cf7 ef55 adf8 df7d 54cb e561 51bf
 Package    : mesosphere-el-repo-7-1.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-3.el7.x86_64                                       1/6
  Installing : apr-util-1.5.2-6.el7.x86_64                                  2/6
  Installing : subversion-libs-1.7.14-10.el7.x86_64                         3/6
  Installing : subversion-1.7.14-10.el7.x86_64                              4/6
  Installing : mesos-0.28.1-2.0.20.centos701406.x86_64                      5/6
Created symlink from /etc/systemd/system/multi-user.target.wants/mesos-master.service to /usr/lib/systemd/system/mesos-master.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mesos-slave.service to /usr/lib/systemd/system/mesos-slave.service.
  Installing : marathon-1.1.1-1.0.472.el7.x86_64                            6/6
Created symlink from /etc/systemd/system/multi-user.target.wants/marathon.service to /usr/lib/systemd/system/marathon.service.
  Verifying  : apr-1.4.8-3.el7.x86_64                                       1/6
  Verifying  : subversion-1.7.14-10.el7.x86_64                              2/6
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                  3/6
  Verifying  : mesos-0.28.1-2.0.20.centos701406.x86_64                      4/6
  Verifying  : marathon-1.1.1-1.0.472.el7.x86_64                            5/6
  Verifying  : subversion-libs-1.7.14-10.el7.x86_64                         6/6
 
Installed:
  marathon.x86_64 0:1.1.1-1.0.472.el7 mesos.x86_64 0:0.28.1-2.0.20.centos701406
 
Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7             apr-util.x86_64 0:1.5.2-6.el7
  subversion.x86_64 0:1.7.14-10.el7    subversion-libs.x86_64 0:1.7.14-10.el7
 
Complete!
  • 安装ZooKeeper:
[aaa@qq.com ~]$ sudo yum -y install mesosphere-zookeeper
[sudo] password for arun:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.supremebytes.com
 * extras: centos.den.host-engine.com
 * updates: mirror.hmc.edu
Resolving Dependencies
--> Running transaction check
---> Package mesosphere-zookeeper.x86_64 0:3.4.6-0.1.20141204175332.centos7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
==================================================================================================
 Package                  Arch       Version                                 Repository      Size
==================================================================================================
Installing:
 mesosphere-zookeeper     x86_64     3.4.6-0.1.20141204175332.centos7        mesosphere     2.8 M
 
Transaction Summary
==================================================================================================
Install  1 Package
 
Total download size: 2.8 M
Installed size: 3.5 M
Downloading packages:
mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64.rpm           | 2.8 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64                   1/1
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /usr/lib/systemd/system/zookeeper.service.
  Verifying  : mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64                   1/1
 
Installed:
  mesosphere-zookeeper.x86_64 0:3.4.6-0.1.20141204175332.centos7
 
Complete!
  • 添加Docker仓库:
[aaa@qq.com ~]$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
[sudo] password for arun:
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
  • 安装Docker:
[aaa@qq.com ~]$ sudo yum -y install docker-engine
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.scalabledns.com
 * extras: linux.mirrors.es.net
 * updates: mirrors.adams.net
Resolving Dependencies
--> Running transaction check
---> Package docker-engine.x86_64 0:1.11.1-1.el7.centos will be installed
--> Processing Dependency: docker-engine-selinux >= 1.11.1-1.el7.centos for package: docker-engine-1.11.1-1.el7.centos.x86_64
--> Running transaction check
---> Package docker-engine-selinux.noarch 0:1.11.1-1.el7.centos will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
====================================================================================================
 Package                       Arch           Version                      Repository          Size
====================================================================================================
Installing:
 docker-engine                 x86_64         1.11.1-1.el7.centos          dockerrepo          13 M
Installing for dependencies:
 docker-engine-selinux         noarch         1.11.1-1.el7.centos          dockerrepo          28 k
 
Transaction Summary
====================================================================================================
Install  1 Package (+1 Dependent package)
 
Total download size: 13 M
Installed size: 54 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/dockerrepo/packages/docker-engine-selinux-1.11.1-1.el7.centos.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 2c52609d: NOKEY
Public key for docker-engine-selinux-1.11.1-1.el7.centos.noarch.rpm is not installed
(1/2): docker-engine-selinux-1.11.1-1.el7.centos.noarch.rpm                  |  28 kB  00:00:00
(2/2): docker-engine-1.11.1-1.el7.centos.x86_64.rpm                          |  13 MB  00:00:02
----------------------------------------------------------------------------------------------------
Total                                                               5.3 MB/s |  13 MB  00:00:02
Retrieving key from https://yum.dockerproject.org/gpg
Importing GPG key 0x2C52609D:
 Userid     : "Docker Release Tool (releasedocker) <aaa@qq.com>"
 Fingerprint: 5811 8e89 f3a9 1289 7c07 0adb f762 2157 2c52 609d
 From       : https://yum.dockerproject.org/gpg
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : docker-engine-selinux-1.11.1-1.el7.centos.noarch                                 1/2
restorecon:  lstat(/var/lib/docker) failed:  No such file or directory
warning: %post(docker-engine-selinux-1.11.1-1.el7.centos.noarch) scriptlet failed, exit status 255
Non-fatal POSTIN scriptlet failure in rpm package docker-engine-selinux-1.11.1-1.el7.centos.noarch
  Installing : docker-engine-1.11.1-1.el7.centos.x86_64                                         2/2
  Verifying  : docker-engine-1.11.1-1.el7.centos.x86_64                                         1/2
  Verifying  : docker-engine-selinux-1.11.1-1.el7.centos.noarch                                 2/2
 
Installed:
  docker-engine.x86_64 0:1.11.1-1.el7.centos
 
Dependency Installed:
  docker-engine-selinux.noarch 0:1.11.1-1.el7.centos
 
Complete!

配置主机名/ IP地址映射

编辑/etc/hosts并创建主机名和IP地址映射。 使用ifconfig查找IP地址,然后选择在CentOS安装期间启用的网络接口。

启动服务

启动所有服务

  • 启动Docker:
[aaa@qq.com ~]$ sudo service docker start
Redirecting to /bin/systemctl start  docker.service
  • 启动ZooKeeper:
sudo systemctl start zookeeper
  • 启动Mesos主站:
[aaa@qq.com ~]$ sudo service mesos-master start
Redirecting to /bin/systemctl start  mesos-master.service
  • 配置mesosdocker容器化器:
sudo sh -c "echo 'docker,mesos' > /etc/mesos-slave/containerizers"
  • 启动Mesos从站:
[aaa@qq.com ~]$ sudo service mesos-slave start
Redirecting to /bin/systemctl start  mesos-slave.service
  • 开始马拉松:
[aaa@qq.com ~]$ sudo service marathon start
Redirecting to /bin/systemctl start  marathon.service
[aaa@qq.com log]$ ps aux | grep meso
root      4511  0.1  0.7 3974136 58968 ?       Ssl  19:54   0:04 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/mesosphere/zookeeper/bin/../build/classes:/opt/mesosphere/zookeeper/bin/../build/lib/*.jar:/opt/mesosphere/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/mesosphere/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/opt/mesosphere/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/opt/mesosphere/zookeeper/bin/../lib/log4j-1.2.16.jar:/opt/mesosphere/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/mesosphere/zookeeper/bin/../zookeeper-3.4.6.jar:/opt/mesosphere/zookeeper/bin/../src/java/lib/*.jar:/etc/zookeeper/conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg
root     15786  0.0  0.2 754788 19596 ?        Ssl  20:43   0:00 /usr/sbin/mesos-slave --master=zk://localhost:2181/mesos --log_dir=/var/log/mesos
root     15792  0.0  0.0 107892   624 ?        S    20:43   0:00 logger -p user.info -t mesos-slave[15786]
root     15793  0.0  0.0 107892   700 ?        S    20:43   0:00 logger -p user.err -t mesos-slave[15786]
root     15837  1.9  3.0 2818056 239208 ?      Ssl  20:43   0:10 java -Djava.library.path=/usr/local/lib:/usr/lib:/usr/lib64 -Djava.util.logging.SimpleFormatter.format=%2$s%5$s%6$s%n -Xmx512m -cp /usr/bin/marathon mesosphere.marathon.Main --zk zk://localhost:2181/marathon --master zk://localhost:2181/mesos
root     15838  0.0  0.2 829028 22908 ?        Ssl  20:43   0:00 /usr/sbin/mesos-master --zk=zk://localhost:2181/mesos --port=5050 --log_dir=/var/log/mesos --quorum=1 --work_dir=/var/lib/mesos
root     15863  0.0  0.0 107892   620 ?        S    20:43   0:00 logger -p user.info -t mesos-master[15838]
root     15864  0.0  0.0 107892   696 ?        S    20:43   0:00 logger -p user.err -t mesos-master[15838]
arun     16931  0.0  0.0 112644   952 pts/0    R+   20:52   0:00 grep --color=auto meso
  • 检查Mesos主站:
[aaa@qq.com ~]$ systemctl status mesos-master
● mesos-master.service - Mesos Master
   Loaded: loaded (/usr/lib/systemd/system/mesos-master.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-05-04 19:42:24 EDT; 32min ago
 Main PID: 8499 (mesos-master)
   Memory: 14.6M
   CGroup: /system.slice/mesos-master.service
           ├─8499 /usr/sbin/mesos-master --zk=zk://localhost:2181/mesos --port=5050 --log_dir=/va...
           ├─8513 logger -p user.info -t mesos-master[8499]
           └─8514 logger -p user.err -t mesos-master[8499]
 
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.564679  8527 master.cpp:3104] Proc...
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.565058  8527 master.hpp:177] Ad...os)
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.565093  8527 master.cpp:3589] Laun...
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.577255  8527 master.cpp:4763] Stat...
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.577287  8527 master.cpp:4811] F...000
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.577325  8527 master.cpp:6421] U...ED)
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.587143  8527 master.cpp:3918] Proc...
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.587198  8527 master.cpp:6487] Remo...
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.726095  8527 master.cpp:5324] S...006
May 04 20:14:41 arun-centos mesos-master[8514]: I0504 20:14:41.728080  8527 master.cpp:3641] P...006
Hint: Some lines were ellipsized, use -l to show in full.
  • 检查Mesos从站:
[aaa@qq.com ~]$ systemctl status mesos-slave
● mesos-slave.service - Mesos Slave
   Loaded: loaded (/usr/lib/systemd/system/mesos-slave.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-05-04 20:00:43 EDT; 12min ago
 Main PID: 9864 (mesos-slave)
   Memory: 57.5M
   CGroup: /system.slice/mesos-slave.service
           ├─9864 /usr/sbin/mesos-slave --master=zk://localhost:2181/mesos --log_dir=/var/log/mes...
           ├─9876 logger -p user.info -t mesos-slave[9864]
           └─9877 logger -p user.err -t mesos-slave[9864]
 
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.283629  9887 status_update_manag...000
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289118  9887 slave.cpp:3990] Cle...000
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289422  9887 slave.cpp:4078] Cle...000
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289459  9887 gc.cpp:55] Scheduling ...
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289489  9887 gc.cpp:55] Scheduli...ure
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289499  9887 gc.cpp:55] Scheduling ...
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289511  9887 gc.cpp:55] Scheduli...ure
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289520  9887 gc.cpp:55] Scheduli...ure
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289525  9887 gc.cpp:55] Scheduli...ure
May 04 20:13:26 arun-centos mesos-slave[9877]: I0504 20:13:26.289533  9887 status_update_manag...000
Hint: Some lines were ellipsized, use -l to show in full.
  • 检查ZooKeeper:
[aaa@qq.com log]$ /opt/mesosphere/zookeeper/bin/zkCli.sh
Connecting to localhost:2181
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Welcome to ZooKeeper!
JLine support is enabled
 
WATCHER::
 
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /mesos
[json.info_0000000001, log_replicas]

将Docker应用程序部署到Mesos

使用配置文件定义了一个简单的基于Docker的应用程序 Marathon在端口8080上运行,因此更新的配置文件如下所示:

{
  "id": "basic-3",
  "cmd": "python3 -m http.server $PORT0",
  "cpus": 0.5,
  "mem": 32.0,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "python:3",
      "forcePullImage": true,
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 0, "hostPort": 0 }
      ]
    }
  }
}

将应用程序部署为:

curl -X POST http://127.0.0.1:8080/v2/apps -d @app.json -H "Content-type: application/json"

该应用程序将花费一些时间才能下载图像,然后运行容器。 此设置有些敏感,并且该应用程序的多次运行表明Docker映像并非一直都成功下载。 在这种情况下,可以使用docker pull python:3手动下载Docker映像,然后可以成功部署该应用程序。

在我们的例子中,主服务器和从服务器在同一台机器上运行,因此可以轻松看到Docker映像和运行中的容器的列表:

[aaa@qq.com ~]$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
python              3                   67b5207e5d3b        8 days ago          671.1 MB
[aaa@qq.com ~]$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
2ee42b120537        python:3            "/bin/sh -c 'python3 "   About an hour ago   Up About an hour    0.0.0.0:31669->31669/tcp   mesos-d03f6e61-063f-4cae-9c1b-3fc6d8384b3a-S0.b99d82f6-9bc1-4a6f-ae3b-53b7f5d06b95

该应用程序可在端口31669并可以在http://127.0.0.1:31669上看到,该地址为:

使用Apache Mesos和Marathon的Docker容器

Mesos UI( http://127.0.0.1:5050 )显示:

使用Apache Mesos和Marathon的Docker容器

Marathon UI( http://127.0.0.1:8080 )显示:

使用Apache Mesos和Marathon的Docker容器

如您所见,这是一个相当复杂的设置。 未来的博客文章将展示如何使用DC / OS并进行无缝设置。

进一步阅读...

Mesos松弛频道很棒! 特别是我从@ jgarcia.mesosphere,@ akaplan.mesosphere,@ harpreet.mesosphere,@ graham.mesosphere了解了很多有关Mesos的知识。 谢谢大家,继续与社区互动!

请享用!

翻译自: https://www.javacodegeeks.com/2016/05/docker-container-using-apache-mesos-marathon.html