慢脚 發表於 2023-6-29 00:00:00

Centos7上Mesos和Marathon的安装和配置

<p>
        对Mesos和Marathon的安装官方文档有较详细的安装说明,但是英文的。我参照官方安装文档(https://open.mesosphere.com/getting-started/install/),在测试环境试装了一下,这里整理下安装配置的步骤。</p>
<p>
        测试环境</p>
<p>
         </p>
<table>
<thead><tr>
<th>
                                服务器IP</th>
                        <th>
                                说明</th>
                </tr></thead>
<tbody>
<tr>
<td>
                                192.168.0.101</td>
                        <td>
                                Master节点</td>
                </tr>
<tr>
<td>
                                192.168.0.102</td>
                        <td>
                                Master节点</td>
                </tr>
<tr>
<td>
                                192.168.0.103</td>
                        <td>
                                Master节点</td>
                </tr>
<tr>
<td>
                                192.168.0.104</td>
                        <td>
                                Slave节点</td>
                </tr>
<tr>
<td>
                                192.168.0.105</td>
                        <td>
                                Slave节点</td>
                </tr>
<tr>
<td>
                                192.168.0.106</td>
                        <td>
                                Slave节点</td>
                </tr>
</tbody>
</table>
<p>
         </p>
<p>
        我们通常采用多个master节点和多个slave节点来实现高可用。这里使用3个master节点来进行高可用配置,每个master节点上都运行mesos-master,marathon和提供选主机制的zookeeper服务。slave节点上只需要运行mesos-slave服务,后期如果需要添加slave节点,可以很容易的添加。为了简单,下面直接采用yum方式安装(除此之外,还可以采用编译安装)。</p>
<p>
        <strong>实验环境</strong></p>
<ol>
<li>
                服务器:京东云,1核2G</li>
        <li>
                系统:centos7.3 64bit</li>
</ol>
<p>
        <strong>安装docker</strong></p>
<p>
        关闭防火墙</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_687744">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">systemctl stop firewalld.service </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">systemctl disable firewalld.service</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        关闭selinux</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_877399">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">setenforce 0</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        修改/etc/selinux/config文件的SELINUX=XXX</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_440607">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">vi /etc/selinux/config</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">SELINUX=disabled</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装docker</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_901970">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">epel-release -y</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">-y docker</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">systemctl </code><code class="bash functions">enable</code> <code class="bash plain">docker</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        启动</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_306349">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">systemctl start docker.service</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>安装zookeeper</strong></p>
<p>
        先执行下面命令安装</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_862885">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">rpm -Uvh http:</code><code class="bash plain">//repos</code><code class="bash plain">.mesosphere.io</code><code class="bash plain">/el/7/noarch/RPMS/mesosphere-el-repo-7-1</code><code class="bash plain">.noarch.rpm</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">rpm --</code><code class="bash functions">import</code> <code class="bash plain">/etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">mesosphere-zookeeper -y</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置zookeeper</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_410297">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"># 改成自己的内网ip</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">HOST_IP=192.168.1.105</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">echo 1 &gt; /var/lib/zookeeper/myid</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">echo "server.1=${HOST_IP}:2888:3888" &gt;&gt; /etc/zookeeper/conf/zoo.cfg</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        启动zookeeper</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_902261">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">systemctl start zookeeper</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>配置mesos master</strong></p>
<p>
        安装</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_6949">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">rpm -Uvh http:</code><code class="bash plain">//repos</code><code class="bash plain">.mesosphere.io</code><code class="bash plain">/el/7/noarch/RPMS/mesosphere-el-repo-7-1</code><code class="bash plain">.noarch.rpm</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">rpm --</code><code class="bash functions">import</code> <code class="bash plain">/etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">mesos -y</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_372754">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"># 改成自己的zookeeper的ip</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">HOST_IP=192.168.1.105</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">echo "zk://${HOST_IP}:2181/mesos" &gt; /etc/mesos/zk</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">echo "${HOST_IP}" &gt; /etc/mesos-master/hostname</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        启动</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_475969">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">systemctl start mesos-master</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>配置mesos slave</strong></p>
<p>
        安装</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_870640">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">rpm -Uvh http:</code><code class="bash plain">//repos</code><code class="bash plain">.mesosphere.io</code><code class="bash plain">/el/7/noarch/RPMS/mesosphere-el-repo-7-1</code><code class="bash plain">.noarch.rpm</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">rpm --</code><code class="bash functions">import</code> <code class="bash plain">/etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">mesos -y</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_63188">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"># 改成自己的zookeeper的ip</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">HOST_IP=192.168.1.105</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">echo "zk://${HOST_IP}:2181/mesos" &gt; /etc/mesos/zk</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">echo 'docker,mesos' &gt; /etc/mesos-slave/containerizers</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">echo '5mins' &gt; /etc/mesos-slave/executor_registration_timeout</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain"># 改成本机IP</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">HOST_IP=192.168.1.105</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain">echo "${HOST_IP}" &gt; /etc/mesos-slave/hostname</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        启动</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_640664">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">systemctl start mesos-slave</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>配置marathon</strong></p>
<p>
        安装</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_811153">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">rpm -Uvh http:</code><code class="bash plain">//repos</code><code class="bash plain">.mesosphere.io</code><code class="bash plain">/el/7/noarch/RPMS/mesosphere-el-repo-7-1</code><code class="bash plain">.noarch.rpm</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">rpm --</code><code class="bash functions">import</code> <code class="bash plain">/etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">marathon -y</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置</p>
<p>
        安装在mesos的master节点即可</p>
<p>
        启动</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_376990">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">systemctl start marathon</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>marthon应用绑定域名</strong></p>
<p>
        安装marathon-lb</p>
<p>
         </p>
<div class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code65644">
        <br>
        docker run -d --restart=always --name marathon-lb --privileged -e PORTS=9090 --net=host ccr.ccs.tencentyun.com/mesos/marathon-lb:v1.11.1 sse -m http://192.168.0.105:8080   --group external</div>
<br><p>
         </p>
<p>
        创建应用的时候加上两个label</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_720424">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">HAPROXY_GROUP=external</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">HAPROXY_0_VHOST=你的域名</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        注意</p>
<p>
        打开 http://你的IP:5050 即可看到mesos的web版控制台</p>
<p>
        打开 http://你的IP:8080 即可看到marthon的web版控制台</p>
<p>
        由于这样子配置免密码可以访问,所以不能直接如此放到生产环境</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:http://blog.yubangweb.com/centos7-an-zhuang-mesos-marathon/</p>
頁: [1]
查看完整版本: Centos7上Mesos和Marathon的安装和配置