Mesos+Marathon搭建部署
實驗環境
主機名 |
IP地址 |
執行服務 |
安裝元件 |
mesos1 |
172.16.138.201 |
zookeeper |
mesos |
mesos2 |
172.16.138.202 |
zookeeper |
mesos |
mesos3 |
172.16.138.203 |
zookeeper |
mesos |
mesos4 |
172.16.138.204 |
mesos-slave |
mesos docker-engine |
mesos5 |
172.16.138.205 |
mesos-slave |
mesos docker-engine |
1 準備工作:
1.1 關閉Selinux
# setenforce 0
# sed -i '/^SELINUX=/c SELINUX=disabled'/etc/selinux/config
1.2 關閉防火牆
# systemctl stop firewalld
# systemctl disable firewalld
1.3 配置主機名解析
172.16.138.201 mesos1
172.16.138.202 mesos2
172.16.138.203 mesos3
172.16.138.204 mesos4
172.16.138.205 mesos5
1.4 下載軟體包
mesos-0.28.2-2.0.27.centos701406.x86_64.rpm
mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64.rpm
marathon-1.1.1-1.0.472.el7.x86_64.rpm
docker-1.8.2-10.el7.centos.x86_64.rpm
docker-selinux-1.8.2-10.el7.centos.x86_64.rpm
2 mesos-master節點配置(以mesos1節點為例)
2.1 安裝元件
[[email protected] ~]# yum -y install mesosmarathon mesosphere-zookeeper
2.2 配置Zookeeper
[[email protected] ~]# echo 1 >/var/lib/zookeeper/myid
幾個ZooKeeper就按照順序編輯,第一個是1,第二個是2,第三個是3,以此類推
[[email protected] ~]# vi/etc/zookeeper/conf/zoo.cfg
server.1=172.16.138.201:2888:3888
server.2=172.16.138.202:2888:3888
server.3=172.16.138.203:2888:3888
[[email protected] ~]# mkdir –p /opt/mesosphere/zookeeper/etc/zookeeper
[[email protected]~]#ln -s /etc/zookeeper/conf/zoo.cfg/opt/mesosphere/zookeeper/etc/zookeeper/zoo.cfg
[[email protected] ~]# vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/opt/mesosphere/zookeeper/bin
[[email protected] ~]# source ~/.bash_profile
[[email protected] ~]# systemctl start zookeeper
2.3 配置mesos-master
[[email protected] ~]# vi /etc/mesos/zk
zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos
[[email protected] ~]# vi /etc/mesos-master/ip
172.16.138.201
[[email protected] ~]# vi/etc/mesos-master/hostname
172.16.138.201
[[email protected] ~]# vi /etc/mesos-master/quorum
1
[[email protected] ~]# vi /etc/mesos-master/work_dir
/var/lib/mesos
[[email protected] ~]# systemctl startmesos-master
2.4 配置marathon
[[email protected] ~]# mkdir -p/etc/marathon/conf
[[email protected] ~]# cd /etc/marathon/conf
[[email protected] conf]# vi hostname
172.16.138.201
[[email protected] conf]# vi master
zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos
[[email protected] conf]# vi zk
zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/marathon
[[email protected] conf]# systemctl startmarathon
將上述操作在所有mesos-master節點上執行。
至此mesos-master節點已配置完畢,可以通過瀏覽器檢視WEB頁面檢視mesos及marathon。
mesos:http://172.16.138.201:5050
marathon:http://172.16.138.201:8080/ui/
3 mesos-slave節點配置(以mesos4節點為例)
3.1 安裝元件
[[email protected] ~]# yum -y install mesos docker
3.2 配置mesos-slave
[[email protected] ~]# cd /etc/mesos-slave/
[[email protected] mesos-slave]# vi hostname
172.16.138.204
[[email protected] mesos-slave]# vi ip
172.16.138.204
[[email protected] mesos-slave]# vi containerizers
docker,mesos
[[email protected] mesos-slave]# vi executor_registration_timeout
15mins
[[email protected] mesos-slave]# vi attributes
rack_id:rack-1
[[email protected] mesos-slave]# vi /etc/mesos/zk
zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos
[[email protected] mesos-slave]# systemctl start mesos-slave
[[email protected] mesos-slave]# systemctlstart docker
到mesos管理端,去檢視slave的註冊情況。
4 建立應用容器
建立容器有兩種方式: WEB GUI / API
下面通過WEB GUI方式建立一個簡單示例,演示建立應用容器的流程。
進入marathon管理控制檯http://172.16.138.201:8080/ui
進入mesos管理控制檯http://172.16.138.201:5050
5 服務發現元件
5.1 開啟Marathon訂閱事件通知特性
[[email protected] ~]# echo ‘http_callback’>/etc/marathon/conf/event_subscriber
[[email protected] ~]# systemctl restart marathon