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 > /var/lib/zookeeper/myid</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">echo "server.1=${HOST_IP}:2888:3888" >> /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" > /etc/mesos/zk</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">echo "${HOST_IP}" > /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" > /etc/mesos/zk</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">echo 'docker,mesos' > /etc/mesos-slave/containerizers</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">echo '5mins' > /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}" > /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]