ถ้าหากกำลังมองหาเครื่องมือที่ใช้จัดการ Server Cluster (ทำ HA) mesosophere และ marathon ก็เป็น open source ที่น่าสนใจเลยทีเดี๋ยว และสามารถนำไปใช้กับงาน Production ได้ เพราะมีความ stable โดยในตัวอย่างจะใช้ 2 host คือ master และ slave มีรายละเอียดดังนี้
- hostname: master.example.local
- IP Address: 192.168.56.130
และ
- hostname: slave.example.local
- IP Address: 192.168.56.131
โดยจะตั้งตั้งบน Ubuntu Server 14.04 ทั้ง 2 host ขั้นตอนการติดตั้งมีดังนี้
ที่เครื่อง Master และ Slave ให้ติดตั้ง Mesosphere ผ่าน apt-get
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)
echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | sudo tee /etc/apt/sources.list.d/mesosphere.list
apt-get update
สำหรับ host master
sudo apt-get install mesosphere
สำหรับ host slave
sudo apt-get install mesos
ต่อไปทำการ Set up Zookeeper รายละเอียดการเชื่อมต่อกับ Mesos
sudo vim /etc/mesos/zk
แก้ไขดังนี้
zk://192.168.56.130:2181/mesos
ทำการตั้งค่า Zookeeper บน host master
sudo vim /etc/zookeeper/conf/myid
ใส่เป็น 1
1
sudo vim /etc/zookeeper/conf/zoo.cfg
ใส่ค่าดังนี้
server.1=192.168.56.130:2888:3888
ต่อไปตั้งค่า quorum สำหรับ host master จะตั้งค่าตามจำนวนเครื่อง master ที่มีเพื่อให้ host master อื่นมีอำนาจในการจัดการระบบ cluster แทน host master ตัวเดิมหาก host master ตัวเดิมไม่สามารถ connect ได้ (ในตัวอย่างจะกำหนดค่าเป็น 1)
sudo vim /etc/mesos-master/quorum
1
ตั้งค่า IP Address และ hostname บน host master
echo 192.168.56.130 | sudo tee /etc/mesos-master/ip
sudo cp /etc/mesos-master/ip /etc/mesos-master/hostname
ตั้งค่า config ของ marathon บน host master
sudo mkdir -p /etc/marathon/conf
sudo cp /etc/mesos-master/hostname /etc/marathon/conf
sudo cp /etc/mesos/zk /etc/marathon/conf/master
sudo cp /etc/marathon/conf/master /etc/marathon/conf/zk
sudo vim /etc/marathon/conf/zk
zk://192.168.56.130:2181/marathon
ทำการสร้าง init script
sudo stop mesos-slave
echo manual | sudo tee /etc/init/mesos-slave.override
sudo restart zookeeper
sudo start mesos-master
sudo start marathon
ทำการตั้งค่าที่ host slave
sudo stop zookeeper
echo manual | sudo tee /etc/init/zookeeper.override
echo manual | sudo tee /etc/init/mesos-master.override
sudo stop mesos-master
echo 192.168.56.131 | sudo tee /etc/mesos-slave/ip
sudo cp /etc/mesos-slave/ip /etc/mesos-slave/hostname
sudo start mesos-slave
เปิด web browser เพื่อเข้าหน้า web ui marathon โดยเข้าไป ip address หรือ hostname ของ host master ที่ http://192.168.56.130:5050 เมื่อเข้ามาแล้วจะเห็นว่าในส่วนของ Slave จะมี Activate อยู่ 1 host
แล้วเข้าไปดูที่แท็ป slave จะเห็นรายละเอียดของ host slave
ต่อไปให้ลองสร้าง App เพื่อทดสอบโดยเข้าไปที่ URL http://192.168.56.130:8080 จะเข้ามาในส่วนของการ manage app ให้คลิ๊กที่ Create เพื่อสร้าง App ใหม่ แล้วใส่รายละเอียดดังนี้
และเมื่อกลับมาดูที่ URL http://192.168.56.130:5050 จะบอกรายละเอียดของ process ของ app ทั้งหมดใน cluster
เป็น app opensource manage cluster อีกตัวที่น่าใช้ครับ เพราะใช้งานง่ายมาก มีขั้นตอนติดตั้งไม่ซับซ้อน