Skip to content

satchel9/calico-mesos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI branch Slack Status IRC Channel

Calico Networking in Mesos

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

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.

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

For information on adding Calico to your Mesos Cluster, see https://github.com/projectcalico/calico-containers/tree/master/docs/mesos

Analytics

About

Project Calico Networking for Mesos

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 95.0%
  • Makefile 5.0%