Docker Networking In OpenStack What you need to know now Fawad Khaliq
About Me OpenStack Community Member Developer in Neutron Maintainer of PLUMgrid Neutron Plugin (networking-plumgrid) How to contact and follow me fawad@plumgrid.com @fawadkhaliq irc:fawadkhaliq 2
Agenda Docker Background The Rapid Adoption Use Cases Nova-Docker and Magnum Docker Networking Progress Report Magnum Networking Unified VM and Docker Networking with PLUMgrid Demo Time! Key Takeaways 3
Introduction to Docker A common packaging format for cloud applications. A high-level API to provide lightweight containers that run processes in isolation. 100+ million Docker Engine downloads 45,000+ applications in Docker Hub 4
Why The Explosion? It s Lightweight App A App A* App B VMs bins/libs bins/libs bins/libs Guest OS Guest OS Guest OS Containers App A App A* App B bins/libs bins/libs Hypervisor Docker Engine Host Operating System Host Operating System Server Hardware Server Hardware 5
Docker Use Cases Easy Application Deployment Load Balancer Applicatio n Servers Docker Engine Host Operating System Server Hardware Database Continuous Integration Application Lifecycle Continuous Delivery Platform-as-a-Service (PaaS) Distributed Applications Composition https://www.docker.com/resources/usecases/ 6
Nova Compute driver for launching Docker containers as Nova instances Offers an overlap of features between Nova and Docker stackforge/nova-docker Heat Magnum 7
Docker Networking Options Circa 2013-14 container A container B container A container B container A 1 Docker0 Linux Bridge 2 Unix domain sockets 3 Host network Docker Proxy iptables 8
Docker Networking Today libnetwork http://blog.docker.com/2015/04/docker-networking-takes-a-step-in-the-right-direction-2/ https://github.com/docker/libnetwork 9
OpenStack Networking Today - Neutron PLUMgrid ONS 100% Software PLUMgrid ONS Backend PLUMgrid Neutron Plugin Neutron API Neutron Server Pluggable and API Driven On Demand Networks 10
Networking Must Be Unified! PLUMgrid Open Common Networking Suite Layerfor OpenStack 11
Why? VMs and Containers Must Communicate With Each Other! nova-api nova-compute Docker Engine nova-compute Libvirt Container1 Container2 VM1 VM2 network 1 network 2 12 12
How It Works PLUMgrid ONS Backend PLUMgrid Neutron Plugin Create Port Neutron API Bind VIF Initiate Nova API Nova Compute Nova Docker Launch Docker 13
14 Is This Even Real?
Demo Time!
Demo Setup Kilo DevStack Neutron with PLUMgrid ONS Plugin Controller + Compute Nova Docker Driver PLUMgrid Director PLUMgrid Edge Compute Nova Libvirt Driver PLUMgrid Gateway PLUMgrid Edge 16
Q&A
Thank you!
Unpublished Work of SUSE. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary, and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.