How to solve networking problem for nested containers

How to solve networking problem for nested containers

Integration of OVN with Kubernates ( In Progress )

OVN(Open Virtual Network) provides network visualization to containers. OVN's integration with Kubernetes works in two modes - the "underlay" mode or the "overlay" mode.

In the "underlay" mode

OVN requires a OpenStack setup to provide container networking. In this mode, one can create logical networks and can have k8 pods running inside VMs,  independent VMs and physical machines running some stateful services connected to the same logical network.

(For this mode to work completely, we need distributed load-balancer suppport in OVN, which is yet to be implemented, but is in the roadmap.)

This mode requires that you have a OpenStack setup pre-installed with OVN providing the underlay networking.

It is out of scope of this documentation to describe how to create a OpenStack setup with OVN.

http://docs.openstack.org/developer/networking-ovn/

In the "overlay" mode

OVN can create virtual networks amongst k8 pods running on multiple hosts. In this mode, you do not need a pre-created OpenStack setup. (This mode needs NAT support. Open vSwitch as of version 2.4 does not support NAT. It is likely that Open vSwitch 2.5 or 2.6 will support NAT)

For both the modes to work, a user has to install Open vSwitch in each VM/host that he plans to run his containers.

Kuryr Project ( In Progress )

Project Kuryr makes networking available to containers through Neutron. This all brings together how Neutron networking benefits containers like it does virtual machines. Kuryr is a Docker network plugin that uses Neutron to provide networking services to Docker containers. It provides containerized images for the common Neutron plugins.

 

Kuryr plans to make use of vlan-aware-vms, however this is not yet complete upstream for now. In the future, it would provide a shared API abstraction to allow modeling containers that reside inside OpenStack VMs.

Thereby, the underlying network provider can implement your desired virtual network topology without a 2nd layer of overlays.

GitHub - openstack/kuryr: Docker remote driver for OpenStack Neutron

What's about Magnum?

Magnum (containers-as-a-service for OpenStack) provisions containers inside Nova instances and those instances use standard Neutron networking.

These containers are referred to as nested containers.

Currently, there is no integration between Magnum resources and Neutron and the nested containers are served networking outside of that provided by OpenStack (Neutron) today.

OpenShift and Neutron Integration

We have no plant to integrate with neutron directly today. And there is no concrete plans yet.

Only option today is to use flannel with host-gw enabled (ip routes on host machine) which is experimental.

OpenShift Commons Briefing #29: Integrating OpenShift on OpenStack - YouTube

Both images are work i done in power point and published in my blog, not that i mind that much but i think the proper thing would be to mention it :)

To view or add a comment, sign in

More articles by Daniel Oh

  • Combine GraphQL with Java to build a flexible and modern API

    In the past few years, developers have used RESTful web services over HTTP(s) to expose business functions using an…

  • What makes Java open source?

    If you're using Java to write business applications, you may know that Java Standard Edition (SE) is not open source…

  • 5 open source IDE tools for Java

    Java frameworks make life easier for programmers by streamlining their work. These frameworks were designed and…

  • Set up Vim as your Rust IDE

    The Rust programming language is designed to implement systems programming with safe concurrency and high memory…

  • How to install Java on a Mac

    In late May, Java celebrated its 25th anniversary, and to commemorate the occasion, developers around the world used…

  • Developing Java in Quarkus, an open source IDE

    In the previous articles, you learned about 6 requirements of cloud-native software and 4 things cloud-native Java must…

  • 4 things cloud-native Java must provide

    Java is still the pervasive development language among enterprise developers, even though it is not developers'…

  • 6 requirements of cloud-native software

    For many years, monolithic applications were the standard enterprise architecture for achieving business requirements…

  • 3 types of metric dashboards for DevOps teams

    Metrics dashboards enable DevOps teams to monitor the entire DevOps platform so they can respond to issues in…

  • Certifications for DevOps engineers

    DevOps teams appreciate using DevOps processes, especially in multi- and hybrid cloud infrastructures, for many…

Others also viewed

Explore content categories