OPENCONTRAIL AND KUBERNETES
Editors note: After this article was written the OpenContrail project changed its name to Tungsten Fabric.
Software Defined Networking (SDN) exploded onto the scene in and around 2008, in part due to the creation and popularization of OpenFlow. While OpenFlow did not specifically cause the development of SDN, it was certainly a watershed event for the concept. A few years after, in 2012, a startup called Nicera (created by a group including Martin Casado and Nick Nick McKeown, one of the authors of OpenFlow: Enabling Innovation in Campus Networks paper) was purchased by VMware for well over a billion dollars, another important event on the SDN timeline. That product became VMware NSX.
At the same time Nicera was getting started many other SDN systems were being invented. Some still exist, some are now gone, others adapted, and new projects are on the horizon. A few of examples are Midokura’s Midonet, OpenDaylight, and OpenContrail. Even now, nearly 10 years after OpenFlow, new SDN projects are just getting started – such as OVN and Dragonflow, among others.
In this blog post we’ll show a quick demonstration of leading SDN solution OpenContrail, illustrating what it looks like when used for managing the networking for a Kubernetes cluster.
OpenContrail and Kubernetes Demo
Unfortunately, the OpenContrail documentation, especially around anything having to do with getting started or proof of concept (PoC), is currently light. There is, as of this time, no easy button to click to build a PoC or development environment, such as what you might find in other complex open source projects (eg. OpenStack’s DevStack). This is a known problem and something the community wants to change.
While there is little current work around development or simple proof of concept environments, there is much work being done around almost every major automation tool, such as Docker images, Ansible playbooks, TripleO and OpenStack Kolla (both OpenStack deployers), and of course, last but not least, Kubernetes (with and without Helm).
In this particular demonstration, we used the contrail-docker repository, specifically the Kubernetes manifest for a single node Ubuntu system.
This video shows a couple of pods being created in a Kubernetes instance which is using Contrail, and then a ping is started and we can see the flows in the Contrail web interface.
While the demo only covers a basic example, OpenContrail is obviously capable of much more. One important use case of OpenContrail is its ability to manage not only the network for an OpenStack deployment, but also Kubernetes clusters within that same OpenStack cloud, thus simplifying the networking of these complex infrastructure systems. Instead of having OpenStack with one network solution and Kubernetes with (yet) another, they can both share the same “nested” OpenContrail.
OpenContrail and the Linux Foundation
OpenContrail has been in the news recently as Juniper has begun the process of moving the Contrail open source code and community into the Linux Foundation. The project is in the midst of a name change in order to meet legal requirements as part of the Linux Foundation on-boarding process, so at some point in the near future it will not be known as OpenContrail. Juniper will keep the commercial name of Contrail, but the open source version will have a new name.
Presumably, the OpenContrail project hopes that by moving under the supervision and tutelage of the highly successful Linux Foundation, the community can more easily adopt modern open source development models and pull in participants from outside Juniper. As the project matures into the open source ecosystem, the SDN platform (both open source and commercial versions) will likely see the number of production SDN deployments utilizing it grow.