Prerequisites for Calico with Mesos
This guide details a minimal install of the external services required by a Calico-Mesos Agent.
-
A Note on Clustered Services: In general, a production-ready mesos cluster should run each of these services across multiple highly available hosts with a quorum. However, for demo and development purposes, this guide will cover launching only one of each service on a single centos7 host. Consult the appropriate documentation for each service:
For more information on how to set up a more production-ready calico-mesos cluster in such a manner, contact us on slack.
-
A Note on Calico’s Customizations in Mesos: It is important to note that no customizations are necessary for any of the aforementioned services to be compatible with a Calico-Mesos Agent. Adding calico to a mesos cluster only requires modifications to each Agent.
Prerequisite: Add the Mesos Official Repository
Mesos-master, zookeeper, and marathon are installed from the official Mesos repository. Add the official repository:
rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
ZooKeeper
Install Mesos’ datastore - ZooKeeper:
yum install -y mesosphere-zookeeper
systemctl start zookeeper
ZooKeeper uses tcp over port 2181. If you’re using a firewall, open this port:
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo systemctl restart firewalld
Marathon
Supported Versions: v1.0.0
(recommended), v0.14.0
- v0.14.2
Once mesos-master is running, we can launch Marathon:
sudo yum install -y marathon
systemctl start marathon
Marathon listens for tcp connections on port 8080. If you’re using a firewall, open this port:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo systemctl restart firewalld
etcd
Calico uses etcd as its data store and communication mechanism among Calico components. Install it from Centos’ repositories with the following command, replacing $IP
with the cluster-accessible IP you would like etcd to bind to:
yum install -y etcd
echo ETCD_LISTEN_CLIENT_URLS=\"http://0.0.0.0:2379\" >> /etc/etcd/etcd.conf
echo ETCD_ADVERTISE_CLIENT_URLS=\"http://$IP:2379\" >> /etc/etcd/etcd.conf
systemctl start etcd.service
Etcd listens for tcp connections on port 2379. If you’re using a firewall, open this port:
sudo firewall-cmd --zone=public --add-port=2379/tcp --permanent
sudo systemctl restart firewalld
Next steps
Check out one of our guides on using Calico-Mesos with the Unified Containerizer or the Docker Containerizer to see how to launch tasks networked with Calico.