关注IT
关注系统玩家

通过容器手工搭建 mesos 集群

mesos是什么就不在累述,百度一下就知道。

实验环境:

3个主机节点,系统为Ubuntu16.04
mesos(根据需求选择版本,鄙人喜欢用最新版本)
zookeeper(根据需求选择版本,鄙人喜欢用最新版本)

1、安装zookeeper集群

分别在每个节点运行代码设置变量参数,避免后面重复输入IP地址

HOST1_IP=10.66.21.91
HOST2_IP=10.66.21.92
HOST3_IP=10.66.21.93
#添加hosts
cat >/etc/hosts<<EOF
10.66.21.91  node1
10.66.21.92  node2
10.66.21.93  node3
EOF
节点1:
#zk1:
docker run -d --name zk1-$HOSTNAME --restart always \
--network host \
-e ZOO_MY_ID=1 \
-e ZOO_SERVERS="server.1=${HOST1_IP}:2888:3888 server.2=${HOST2_IP}:2888:3888 server.3=${HOST3_IP}:2888:3888" \
zookeeper
节点2:
#zk2:
docker run -d --name zk2-$HOSTNAME --restart always \
--network host \
-e ZOO_MY_ID=2 \
-e ZOO_SERVERS="server.1=${HOST1_IP}:2888:3888 server.2=${HOST2_IP}:2888:3888 server.3=${HOST3_IP}:2888:3888" \
zookeeper

节点3:
#zk3:

docker run -d --name zk3-$HOSTNAME --restart always \
--network host \
-e ZOO_MY_ID=3 \
-e ZOO_SERVERS="server.1=${HOST1_IP}:2888:3888 server.2=${HOST2_IP}:2888:3888 server.3=${HOST3_IP}:2888:3888" \
zookeeper
查询zk集群状态
docker exec -ti (容器名或者容器ID)  bash bin/zkServer.sh status

 2、mesos-master配置

#mster1
docker run -d --name mesos-master-$HOSTNAME --restart always \
--net=host \
-e MESOS_PORT=5050 \
-e MESOS_CLUSTER=mesos  \
-e MESOS_HOSTNAME=${HOST1_IP}  \  #注意:这个地方尽量用节点可访问的IP地址,如果为主机名PC 无法访问除非有DNS解析
-e MESOS_IP=${HOST1_IP} \
-e MESOS_REGISTRY=in_memory \
-e MESOS_QUORUM=2 \
-e MESOS_ZK=zk://${HOST1_IP}:2181,${HOST2_IP}:2181,${HOST3_IP}:2181/mesos \
-e MESOS_LOG_DIR=/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos \
mesosphere/mesos-master
#mster2
docker run -tid --name mesos-master-$HOSTNAME --restart always \
--net=host \
-e MESOS_PORT=5050 \
-e MESOS_CLUSTER=mesos  \
-e MESOS_HOSTNAME=${HOST2_IP}  \  #注意:这个地方尽量用节点可访问的IP地址,如果为主机名PC 无法访问除非有DNS解析
-e MESOS_IP=${HOST2_IP} \
-e MESOS_REGISTRY=in_memory \
-e MESOS_QUORUM=2 \
-e MESOS_ZK=zk://${HOST1_IP}:2181,${HOST2_IP}:2181,${HOST3_IP}:2181/mesos \
-e MESOS_LOG_DIR=/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos \
mesosphere/mesos-master \
#mster3
docker run -tid --name mesos-master-$HOSTNAME --restart always \
--net=host \
-e MESOS_IP=${HOST3_IP} \
-e MESOS_PORT=5050 \
-e MESOS_CLUSTER=mesos  \
-e MESOS_HOSTNAME=${HOST3_IP} \  #注意:这个地方尽量用节点可访问的IP地址,如果为主机名PC 无法访问除非有DNS解析
-e MESOS_REGISTRY=in_memory \
-e MESOS_QUORUM=2 \
-e MESOS_ZK=zk://${HOST1_IP}:2181,${HOST2_IP}:2181,${HOST3_IP}:2181/mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/lib/mesos \
mesosphere/mesos-master

3、mesos-slave 配置

docker run -tid --net=host --privileged --restart always \
--name mesos-slave-$HOSTNAME \
-e MESOS_HOSTNAME=$HOSTNAME \
-e MESOS_MASTER=zk://${HOST1_IP}:2181,${HOST2_IP}:2181,${HOST3_IP}:2181/mesos \
-v /var/run/docker.sock:/run/docker.sock \
-v /home/mesos-slave/plugins/:/var/lib/mesos/cni/plugins \
-v /home/mesos-slave/config/:/var/lib/mesos/cni/config \
-e MESOS_ISOLATOR=cgroups/cpu,cgroups/mem \
-e MESOS_CONTAINERIZERS=docker,mesos \
mesosphere/mesos-slave
--network_cni_config_dir=/var/lib/mesos/cni/config \
--network_cni_plugins_dir=/var/lib/mesos/cni/plugins \
--isolation=filesystem/linux,docker/runtime \
--image_providers=docker
最后四排参数涉及到mesos集成calico的使用,后续再说明。
分享到:更多 ()
喜欢 0
rancher

评论 抢沙发

评论前必须登录!