北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 技能园地 > 文件零碎 > 注释

                王勇桥:Swarm和Mesos集成-实战摆设

                2016-03-05 09:50泉源:CSDN
                导读:“Swarm和Mesos集成指南”系列文章,带各人理解Swarm和Mesos集成的架谈判原理,Swarm基于Mesos集群的实战摆设和设置装备摆设,以及基于IBM Platform本身在资源调理、散布式盘算范畴方面的理论经历。

                由于Swarm和Mesos的集成刚处于起步阶段,如今网上没有一篇文章来细致的引见基于Mesos来摆设Swarm集群以及引见相干的设置装备摆设参数。Swarm社区的官方文档,也只给出了复杂的阐明,关于不理解Mesos的开辟者来说,依照谁人阐明来摆设也绝非易事。文本是基于作者临时奉献Mesos和Swarm社区的开辟经历,站在一个开辟者的角度,来率领各人实战摆设基于Mesos的Swarm集群。来自IBM Platform软件工程师王勇桥将带来“Swarm和Mesos集成指南”系列文章,带各人理解Swarm和Mesos集成的架谈判原理,Swarm基于Mesos集群的实战摆设和设置装备摆设,以及基于IBM Platform本身在资源调理、散布式盘算范畴方面的理论经历,向各人引见IBM Platform对Mesos在资源调理方面的战略优化,以及以Swarm为例向各人引见这些优化将对Mesos下层的framework和企业级用户带来哪些加强性的体验。本文为第二篇:实战摆设。

                搭建基于Mesos的Swarm集群

                摆设架构

                在本文作者将用三台装置了Ubuntu 14.04的呆板来给各人演示怎样摆设基于Mesos的Swarm集群。

                王勇桥:Swarm和Mesos集成-实战摆设

                别的本文是站在一个开辟者的角度来摆设Swarm和Mesos的集群,以下步调会经过build Swarm和Mesos源码的方法来搭建基于此集群,由于有三个节点,为了在修正了源码之后,使修正可以疾速便捷的在一切的呆板上失效,我们将在master.wyq.com这个呆板上假定NFS效劳和build Mesos和Swarm,然后将build的binary mount到其他的盘算节点上。如许在修正了Mesos或许Swarm的代码之后,只需求在master.wyq.com build然后只需求在别的两台盘算节点上重启相应的效劳就可以失效。

                装置步调

                1.预备情况 
                预备三台Ubuntu 14.40的情况(物理机和假造机都可以),设置装备摆设DNS或许/etc/hosts文件来包管互相经过呆板名可以拜访,而且封闭防火墙。

                2.在两台盘算节点上装置Docker 
                登岸computer1.wyq.com和computer2.wyq.com实行以下下令装置Docker:

                # apt-get update 
                # apt-get install wget
                # wget -qO- http://get.docker.com/ | sh

                默许状况下,Docker只容许经过unix socket来拜访Docker Engine,以是依据以上实际的剖析,假如Swarm Manager节点master.wyq.com想要拜访盘算节点上的Docker Engine,我们必需修正Swarm默许设置装备摆设来开启一个TCP的端供词内部拜访:

                编辑/etc/default/docker文件,修正DOCKER_OPTS参数如下:

                # vim /etc/default/docker 
                DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock"
                # service docker restart

                3.在master节点装置Golang和godep 
                由于master.wyq.com上需求装置Swarm Manager效劳,Swarm 是由GO言语编写,以是需求在master.wyq.com上装置Golang来支持Swarm Manager的运转。

                注: 从Swarm 0.4版本开端,它支持Golang的最低版本为1.4,本文运用最新的版本: 
                /# wget http://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz 
                /# tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz

                Swarm像大少数GO言语的项目一样,运用godep来办理包的依赖,由于Swarm官方没有提供Swarm的装置包,以是需求我们本人编译,以是在编译之前我们需求装置godep来协助下载Swarm的依赖。

                起首由于godep的一些依赖运用了mercurial, 先装置mercurial 
                # apt-get install -y mercurial

                装置godep:

                \# mkdir $HOME/go-tools && export GOPATH=$HOME/go-tools
                \# go get github.com/tools/godep
                \# ll /root/go-tools/bin/
                -rwxr-xr-x 1 root root 10327064 Jan 22 16:47 godep*

                在装置完Golang和godep之后,编辑/etc/profile,添加情况变量:

                export PATH=$PATH:/usr/local/go/bin:$HOME/go-tools/bin

                装置验证:

                \# go version
                go version go1.5.3 linux/amd64
                
                \# godep version
                godep v51 (linux/amd64/go1.5.3)

                4.在master节点上build Mesos 
                Mesos官方现在没有提供Mesos的装置包,需求本人下载源码包停止build。本文以Mesos最新的版本为例停止装置。 登岸master节点master.wyq.com实行以下步调停止build:

                起首需求装置build Mesos 必需的第三方软件包:

                # apt-get update
                # apt-get install -y openjdk-7-jdk
                # apt-get install -y autoconf libtool
                # apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

                下载源码包停止编译装置:

                # wget http://mirror.bit.edu.cn/apache/mesos/0.26.0/mesos-0.26.0.tar.gz
                # tar -xzvf mesos-0.26.0.tar.gz
                # cd mesos-0.26.0
                # ./bootstrap
                # mkdir build && cd build
                # ../configure
                # make
                # make install DESTDIR=/opt/apache/mesos
                # ll /opt/apache/mesos/usr/local/sbin/
                total 2632
                drwxr-xr-x 2 root root    4096 Jan 28 16:41 ./
                drwxr-xr-x 9 root root    4096 Jan 15 20:02 ../
                -rwxr-xr-x 1 root root     406 Jan 28 16:41 mesos-daemon.sh*
                -rwxr-xr-x 1 root root 1698505 Jan 28 16:41 mesos-master*
                -rwxr-xr-x 1 root root  954864 Jan 28 16:41 mesos-slave*
                -rwxr-xr-x 1 root root     888 Jan 28 16:41 mesos-start-cluster.sh*
                -rwxr-xr-x 1 root root    1366 Jan 28 16:41 mesos-start-masters.sh*
                -rwxr-xr-x 1 root root    1349 Jan 28 16:41 mesos-start-slaves.sh*
                -rwxr-xr-x 1 root root     635 Jan 28 16:41 mesos-stop-cluster.sh*
                -rwxr-xr-x 1 root root    1200 Jan 28 16:41 mesos-stop-masters.sh*
                -rwxr-xr-x 1 root root    1185 Jan 28 16:41 mesos-stop-slaves.sh*

                设置装备摆设: 
                编辑/opt/apache/mesos/usr/local/sbin/mesos-daemon.sh文件:

                •修正prefix变量的值为:/opt/apache/mesos/usr/local 
                •在prefix的下一行添加行:

                export LD_LIBRARY_PATH=${prefix}/lib
                export MESOS_LAUNCHER_DIR=${prefix}/libexec/mesos
                export MESOS_EXECUTOR_ENVIRONMENT_VARIABLES="{\"PATH\": \"${PATH}\",\"LD_LIBRARY_PATH\": \"${LD_LIBRARY_PATH}\"}"

                5.在master节点上编译Swarm 
                下载源码包:

                # mkdir /opt/docker/swarm && cd /opt/docker/swarm
                # wget http://github.com/docker/swarm/archive/v1.0.1.tar.gz

                构建build目次构造:

                # mkdir -p $PWD/src/github.com/docker
                # tar -C src/github.com/docker -xzf v1.0.1.tar.gz
                # mv src/github.com/docker/swarm-1.0.1 src/github.com/docker/swarm
                # export GOPATH=$PWD
                # cd src/github.com/docker/swarm/

                编译Swarm binary:

                # godep go install .
                # $PWD/bin
                total 22680
                -rwxr-xr-x 1 root root 23215632 Feb  1 19:25 swarm*

                注: 关于Swarm的1.0.1版本,有一个bug会招致下载依赖失败,我曾经在Swarm社区log,假如你想运用这个版本,请参http://github.com/docker/swarm/issues/1720 处理。

                6.在master节点上装置NFS

                为了节流装置工夫,我们不需求在三台呆板上辨别build Mesos,可以间接将build的装置目次拷贝到其他两台呆板上即可。但是特殊是关于一个Mesos奉献者来说,我们需求活期的和社区最新的代码停止同步和重新build,以是为了防止每次反复的拷贝,我们接纳共享文件的方法。

                登岸master.wyq.com实行如下下令装置设置装备摆设NFS:

                # apt-get install -y nfs-common nfs-kernel-server
                # vim /etc/exports
                /opt/apache/mesos *(rw,sync,no_root_squash,no_subtree_check)
                # /etc/init.d/nfs-kernel-server start
                # showmount -e localhost
                Export list for localhost:
                /opt/apache/mesos                     *

                7.设置装备摆设两台盘算节点 
                登岸computer1.wyq.com和computer2.wyq.com,实行如下下令:

                在两台盘算节点上装置运转Mesos需求的装置包:

                # apt-get update
                # apt-get install -y openjdk-7-jdk
                # apt-get install -y autoconf libtool
                # apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

                Mount Mesos装置目次:

                # mkdir /opt/apache/mesos
                # mount -t nfs -o nolock  maser.wyq.com:/opt/apache/mesos /opt/apache/mesos
                # ll /opt/apache/mesos/usr/local/sbin/
                total 2632
                drwxr-xr-x 2 root root    4096 Jan 28 16:41 ./
                drwxr-xr-x 9 root root    4096 Jan 15 20:02 ../
                -rwxr-xr-x 1 root root     406 Jan 28 16:41 mesos-daemon.sh*
                -rwxr-xr-x 1 root root 1698505 Jan 28 16:41 mesos-master*
                -rwxr-xr-x 1 root root  954864 Jan 28 16:41 mesos-slave*
                -rwxr-xr-x 1 root root     888 Jan 28 16:41 mesos-start-cluster.sh*
                -rwxr-xr-x 1 root root    1366 Jan 28 16:41 mesos-start-masters.sh*
                -rwxr-xr-x 1 root root    1349 Jan 28 16:41 mesos-start-slaves.sh*
                -rwxr-xr-x 1 root root     635 Jan 28 16:41 mesos-stop-cluster.sh*
                -rwxr-xr-x 1 root root    1200 Jan 28 16:41 mesos-stop-masters.sh*
                -rwxr-xr-x 1 root root    1185 Jan 28 16:41 mesos-stop-slaves.sh*

                8.启动效劳 
                登岸master.wyq.com启动Mesos master和Swarm manager:

                # cd /opt/apache/mesos/usr/local/sbin/
                # mkdir /opt/mesoslog
                # ./mesos-daemon.sh mesos-master --work_dir=/var/lib/mesos --log_dir=/opt/mesoslog
                
                # cd /opt/docker/swarm/bin
                # ./swarm manage -c mesos-experimental --cluster-opt mesos.address=9.111.255.10 --cluster-opt mesos.port=3375 gradyhost1.eng.platformlab.ibm.com:5050

                登岸computer1.wyq.com和computer2.wyq.com启动Mesos agent:

                # cd /opt/apache/mesos/usr/local/sbin/
                # mkdir /opt/mesoslog
                # ./mesos-daemon.sh mesos-slave --master=gradyhost1.eng.platformlab.ibm.com:5050 --log_dir=/opt/mesoslog --containerizers=mesos,docker

                9.验证: 
                翻开Mesos portal: http://master.wyq.com:5050 检查Slaves,Frameworks和offers的信息。

                在恣意一个盘算节点上检查docker info:

                # docker -H manager.wyq.com:2375 info
                Containers: 0
                Images: 1
                Role: primary
                Strategy: spread
                Filters: health, port, dependency, affinity, constraint
                Offers: 2
                  Offer: 98085d1e-4516-4c4c-b6a3-4f8cde32c980-O19
                   └ cpus: 2
                   └ mem: 2.851 GiB
                   └ disk: 29.79 GiB
                   └ ports: 31000-32000
                  Offer: 98085d1e-4516-4c4c-b6a3-4f8cde32c980-O20
                   └ cpus: 2
                   └ mem: 2.851 GiB
                   └ disk: 29.79 GiB
                   └ ports: 31000-32000
                CPUs: 4
                Total Memory: 5.701 GiB
                Name: manager.wyq.com

                实行docker run, 创立hello-world container:

                # docker -H manager.wyq.com:2375 run --cpu-shares 1 hello-world
                Hello from Docker.

                This message shows that your installation appears to be working correctly.

                To generate this message, Docker took the following steps:

                1. The Docker client contacted the Docker daemon.
                2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
                3. The Docker daemon created a new container from that image which runs the 
                  executable that produces the output you are currently reading.
                4. The Docker daemon streamed that output to the Docker client, which sent it 
                  to your terminal.

                To try something more ambitious, you can run an Ubuntu container with: 
                $ docker run -it ubuntu bash

                Share images, automate workflows, and more with a free Docker Hub account: 
                http://hub.docker.com

                For more examples and ideas, visit: 
                http://docs.docker.com/userguide/

                作者简介:

                王勇桥,80后的IT攻城狮,办事于IBM多年,次要从事云盘算范畴相干的任务,Mesos和Swarm社区的奉献者。平常喜好在专业工夫研讨DevOps相干的使用, 对主动化摆设,继续集成,资源调理有较深的研讨。

                持续阅读
                要害词 :
                Swarm Mesos
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐
                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台