Skip to content

TrimBiggs/calico-mesos

 
 

Repository files navigation

CircleCI branch Slack Status IRC Channel

Calico Networking in Mesos

Calico provides an IP-Per-Container Networking for your Mesos Cluster.

This repository contains code and examples for running Apache Mesos with Project Calico.

Instead of the Executor sharing its Slave's networking namespace, it is instead given its own to launch applications in. 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.

For more information on how Calico works, see: projectcalico.org/learn

Architecture

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 of net-modules libraries, and points net-modules to the calico-mesos binary.
  • Each slave must start the core mesos-slave process with --modules=file:///path/to/modules.json

Demonstration

We recommend that your first experiments with Mesos & Project Calico are downloading and running the net-modules demo, which uses Docker Compose to start a small Mesos cluster with Calico enabled on your desktop or laptop.

Additionally, for a quick proof of concept, we've Dockerized the core Mesos and Calico components. Follow the Dockerized Mesos Guide to see how it works.

Deploying a Mesos Cluster with Calico

When you are ready to deploy on actual data center hardware, follow the instructions in the calico-docker repository.

Analytics

About

Project Calico Networking for Mesos

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 72.7%
  • Shell 19.8%
  • Makefile 7.5%