Calico provides an IP-Per-Container Networking for your Mesos Cluster.
- For information on Calico Networking, see projectcalico.org
Traditional Mesos networking treats ports as resources, and binds each task to its agent's IP. With Calico Networking enabled, each executor is given its own IP in an isolated networking namespace.
Frameworks (which are responsible for creating the Executor instances) can opt-in for calico-networking by providing NetworkInfo in their ContainerInfo spec. Frameworks which do not provide NetworkInfo will simply be launched with traditional networking. Communication between applications is allowed between applications with the same "netgroup".
Calico-mesos works in conjunction with net-modules, which provides a simple JSON abstraction layer between Calico and Mesos.
In order to utilize Calico Networking, each slave in the Mesos cluster must install the following dependencies:
- Each slave must run an instance of calico-node, a packaged container of calico core services
- Each slave must have
calicoctl
, a command line tool for easily launching the calico-node service. - Each slave must have net-modules libraries installed
- Each slave must have the
calico-mesos
binary installed - Each slave must have a filled in
modules.json
, which points mesos to the location ofnet-modules
libraries, and pointsnet-modules
to thecalico-mesos
binary. - Each slave must start the core mesos-slave process with
--modules=file:///path/to/modules.json
For information on adding Calico to your Mesos Cluster, see https://github.com/projectcalico/calico-containers/tree/master/docs/mesos