功夫
作者:互联网
1.环境部署(因为配置有限,此操作使用了2台虚拟机)
IP |
描述 |
192.168.253.55 |
Mesos-master mesos-slave marathon docker |
192.168.253.55 |
Zookeeper mesos-slave docker |
备注:Zookeeper使用伪分布式部署,也就是一台虚拟机上启动三个不同端口的Zookeeper实例 |
1.1同步时间
yum -y install ntp ntpdate
ntpdate cn.pool.ntp.org
hwclock --systohc
1.2关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.3关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
1.4创建工作目录
mkdir /data
2. 官网地址
Mesos:http://mesos.apache.org/
Marathon:https://mesosphere.github.io/marathon/
3.jdk安装(三个节点都要执行)
3.1解压jdk1.8
tar zxf jdk-8u161-linux-x64.tar.gz -C /data/ cd /data mv jdk1.8.0_161/ jdk`
3.2配置环境变量
vim /etc/profile
export JAVA_HOME=/data/jdk
export JRE_HOME=/data/jdk/jre
export PATH=$PATH:/data/jdk/bin
export CLASSPATH=./:/data/jdk/lib:/data/jdk/jre/lib
source /etc/profile`
3.3测试是否成功
4. 安装zookeeper(192.168.253.56)
4.1解压
tar xzf apache-zookeeper-3.6.1-bin.tar.gz -C /data
cd /data
mv apache-zookeeper-3.6.1-bin zookeeper
4.2修改配置文件
cd /data/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
[root@localhost conf]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=200
dataDir=/data/zookeeper/data/zk1
clientPort=2181
server.1=192.168.253.56:3181:4181
server.2=192.168.253.56:3182:4182
server.3=192.168.253.56:3183:4183
4.3创建三个目录存放zookeeper数据
mkdir -p /data/zookeeper/data/{zk1,zk2,zk3}
4.4 创建myid文件
echo 1 >/data/zookeeper/data/zk1/myid
echo 2 >/data/zookeeper/data/zk2/myid
echo 3 >/data/zookeeper/data/zk3/myid
4.5 生成三份zookeeper配置文件
cd /data/zookeeper/conf/
cp zoo.cfg zk1.cfg
cp zoo.cfg zk2.cfg
cp zoo.cfg zk3.cfg
4.6 修改zk2,zk3对应的数据存放目录以及端口
sed -i 's#zk1#zk2#g' zk2.cfg #修改数据存放目录
sed -i 's#zk1#zk3#g' zk3.cfg
sed -i 's#2181#2182#g' zk2.cfg #修改客户端端口
sed -i 's#2181#2183#g' zk3.cfg
4.7 zookeeper角色查看
4.7.1 启动zookeeper
/data/zookeeper/bin/zkServer.sh start /data/zookeeper/conf/zk1.cfg
/data/zookeeper/bin/zkServer.sh start /data/zookeeper/conf/zk2.cfg
/data/zookeeper/bin/zkServer.sh start /data/zookeeper/conf/zk3.cfg
4.7.2 查看集群状态
/data/zookeeper/bin/zkServer.sh status /data/zookeeper/conf/zk1.cfg
/data/zookeeper/bin/zkServer.sh status /data/zookeeper/conf/zk2.cfg
/data/zookeeper/bin/zkServer.sh status /data/zookeeper/conf/zk3.cfg
5. mesos集群部署
192.168.253.55,192.168.253.56
5.1 安装mesos
yum install mesos-1.9.0-2.0.1.el7.x86_64.rpm -y
5.2 增添zookeeper配置
cd /etc/mesos
vim zk
zk://192.168.253.56:2181,192.168.253.56:2182,192.168.253.56:2183/mesos
5.3 192.168.253.55
5.3.1 mesos-master配置
cd /etc/mesos-master
echo 192.168.253.55 > ip
echo 192.168.253.55 > hostname
echo 1 > quorum #这个数字要大于安装的master节点的总数的一半
work_dir为默认
5.3.2 mesos-slave配置
cd /etc/mesos-slave/
echo 192.168.253.55 > ip
echo 192.168.253.55 > hostname
work_dir为默认
5.3.3 安装marathon
tar zxf marathon-1.5.1.tgz
mv marathon-1.5.0-96-gf84298d/ /data/marathon
5.3.4 启动mesos-master mesos-slave marathon
systemctl start mesos-master mesos-slave
systemctl enable mesos-master mesos-slave #设为开机自启
/data/marathon/bin/marathon --master zk://192.168.253.56:2181,192.168.253.56:2182,192.168.253.56:2183/mesos --zk zk://192.168.253.56:2181,192.168.253.56:2182,192.168.253.56:2183/marathon
5.3.5 浏览器访问
Mesos
Marathon
5.4 192.168.253.56
5.4.1 mesos-slave配置
cd /etc/mesos-slave/
echo 192.168.253.56 > ip
echo 192.168.253.56 > hostname
work_dir为默认
5.4.2 启动mesos-slave
systemctl start mesos-slave
systemctl enable mesos-slave
6. marathon调用mesos运行docker(192.168.253.55,192.168.253.56)
6.1 解压docker
tar zxf docker-18.06.3-ce.tgz
mv docker /data
6.2 把命令拷贝到/usr/bin
cd /data/docker
cp ./* /usr/bin
6.3 创建docker家目录
mkdir /home/docker
6.4 启动docker
dockerd -g /home/docker &
6.5 查看进程
ps -ef |grep docker
6.6 拉取nginx
docker pull nginx
6.7 在mesos-slave上增加配置参数,并重启
echo 'docker,mesos' | tee /etc/mesos-slave/containerizers
systemctl restart mesos-slave
7. 测试
7.1 运行mesos任务,可以在web界面上查看task:
MASTER=$(mesos-resolve `cat /etc/mesos/zk`)
mesos-execute --master=$MASTER --name="cluster-test" --command="sleep 60"
7.2 marathon测试
浏览器输入:http://192.168.253.55:8080/
创建一个first的任务
然后去mesos网页查看:http://192.168.253.55:5050/
可以看到任务已经分配给slave1(192.168.253.55) 和slave2(192.168.253.56)
点击
7.2.1 查看执行时间相关信息
Id根据实际情况查看
cd /var/lib/mesos/slaves/167b7f7c-1441-4755-ab15-ee6c33486c98-S0/frameworks/c3d564b2-6b6b-4468-b467-b413f61b9180-0001/executors
cd first.2e24d54e-cb1c-11ea-abb0-0242467fbcb0/runs/latest/
#标准错误和标准输出信息
stderr
#查看输出字符串
stdout
7.3 marathon通过API创建一个nginx的docker容器
下面通过Mesos调度,使用marathon来创建一个nginx镜像的Docker容器,Marathon启动时会读取/etc/mesos/zk配置文件,Marathon通过Zookeeper来找到Mesos Master。
#在marathon服务所在节点创建json文件;
7.3.1 写json文件
vim nginx.json
{
"id":"nginx-first", #容器名,只在marathon生效
"cpus":0.2, #cpu用量
"mem":20.0, #mem用量
"instances": 1, #容器数量
"constraints": [["hostname", "UNIQUE",""]], #限制
"container": {
"type":"DOCKER", #应用类型
"docker": { #docker具体配置
"image": "nginx", #采用的image
"network": "BRIDGE", #网络模式
"portMappings": [
{"containerPort": 80, "hostPort": 0,"servicePort": 0, "protocol": "tcp" }
]}#端口映射,”0”表示任意端口,"servicePort"服务端口
}
}
7.3.2 curl方式调用
curl -X POST http://192.168.253.55:8080/v2/apps -d @/root/nginx.json -H "Content-type: application/json"
7.3.3 查看容器是否存在(此处有一个容器就证明成功,我这里执行了两遍curl,所以出现两个容器)
192.168.253.55
192.168.253.56
访问页面:
标签:mesos,cfg,zookeeper,192.168,253.56,功夫,data 来源: https://www.cnblogs.com/lanist/p/13356529.html