SlideShare a Scribd company logo
1 of 35
Download to read offline
Betting on Container
Networking
Lee Calcote
July 27th, 2016
Overlay
Underlay 
http://calcotestudios.com/over-under
http://calcotestudios.com/oubcn
Lee Calcote
clouds, containers, infrastructure, applications
 and their management
linkedin.com/in/leecalcote
@lcalcote
blog.gingergeek.com
lee@calcotestudios.com
Show of Hands
@lcalcote
Container
Networking
 
...it's complicated.
Preset Expectations
 
 
 
 
 
 
 
 
 
 
 
 
Experience &
Management
 
 
 
 
 
Reliability &
Performance
same demands and measurements
developer-friendly and application-driven
simple to use and deploy for developers and operators
better or at least on par with their existing virtualized data
center networking
Container
Networking
Specifications
Very interesting
but no need to actually know these
@lcalcote
(CNM)
Container Network Model
 
...is a specification proposed by Docker,
adopted by projects such as
 
Plugins built by projects such as ,
, and
libnetwork
Weave
Project Calico Kuryr
(CNI)
Container Network Interface
 
...is a specification proposed by
CoreOS and adopted by projects such
as , , ,
, and  
 
Plugins created by projects such as
, , and
rkt Kurma Kubernetes Cloud
Foundry Apache Mesos
Weave Project Calico Contiv
Networking
@lcalcote
Container Networking Specifications
Container Network Model
Specification
@lcalcote
Remote DriversLocal Drivers
Container Network Model
Topology
@lcalcote
Network Sandbox
Endpoint
Backend Network
Docker
Container
Network Sandbox
Endpoint
Docker
Container
Network Sandbox
Endpoint
Docker
Container
Endpoint
Frontend Network
@lcalcote
Container Network Interface
(CNI)
@lcalcote
Container Network Interface
Flow
 
1. Container runtime needs to:
1. allocate a network namespace to the container and assign a container ID
2. pass along a number of parameters (CNI config) to network driver.
2. Network driver attaches container to a network and then
reports the assigned IP address back to the container runtime
(via JSON schema)
@lcalcote
CNI Network
(JSON)
{
"name": "mynet",
"type": "bridge",
"bridge": "cni0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"subnet": "10.22.0.0/16",
"routes": [
{ "dst": "0.0.0.0/0" }
]
}
CNI and CNM
Similar in that each...
...are driver-based, and therefore
democratize the selection of which type of container networking 
...allow multiple network drivers to be active and used
concurrently
each provide a one-to-one mapping of network to that network’s driver
...allow containers to join one or more networks.
...allow the container runtime to launch the network in its
own namespace
 segregate the application/business logic of connecting the container to
the network to the network driver.
 
@lcalcote
CNI and CNM
Different in that...
CNI supports any container runtime
CNM only support Docker runtime
CNI is simpler, has adoption beyond its creator
CNM acts as a broker for conflict resolution
CNI is still considering its approach to arbitration
@lcalcote
Types of Container Networking
None
Links and Ambassadors
Container-mapped
Bridge
Host
Overlay
 
Underlay
MACvlan
IPvlan
Direct Routing
Point-to-Point
Fan Networking
 
@lcalcote
None
@lcalcote
container receives a network stack, but
lacks an external network interface.
 
it does, however, receive a loopback
interface.
Links
facilitate single host connectivity
"discovery" via /etc/hosts or env vars
@lcalcote
Ambassadors
facilitate multi-host connectivity
uses a tcp port forwarder (socat)
Web Host
MySQL
Ambassador
PHP
DB Host
PHP
Ambassador
MySQL
link link
Container-Mapped
one container reuses (maps to) the networking
namespace of another container.
@lcalcote
may only be invoked when running a docker
container (cannot be defined in Dockerfile):
 
 
--net=container=some_container_name_or_id
Bridge
Ah, yes, docker0
default networking for Docker
uses a host-internal network
leverages iptables for network address translation
(NAT) and port-mapping
@lcalcote
Host
container created shares its network namespace with the host
default Mesos networking mode
better performance 
easy to understand and troubleshoot
suffers port conflicts
secure?
@lcalcote
Overlay
use networking tunnels to delivery communication
across hosts
 
Most useful in hybrid cloud scenarios
or when shadow IT is needed
Many tunneling technologies exist
VXLAN being the most commonly used
Requires distributed key-value store
@lcalcote
K/V Store for Overlay
Networking
Docker - requires K/V store (built-in as experimental as of
1.12)
WeaveMesh - does not require K/V store
WeaveNet - limited to single network; requires K/V store
Flannel -  requires K/V store
Plumgrid - requires K/V store; built-in and not pluggable
Midokura - requires K/V store; built-in and not pluggable
Calico - requires K/V store
@lcalcote
Underlays
expose host interfaces (i.e. the physical network interface at
eth0) directly to containers running on the host
MACvlan
IPvlan
Direct Routing
@lcalcote
not necessarily public cloud friendly
Point-to-Point
Default rkt networking mode
Uses NAT (IPMASQ) by default
Creates a virtual ethernet pair
placing one on the host and the other into the container pod
leverages iptables to provide port-forwarding
for inbound traffic to the pod
internal communication between other
containers in the pod over the loopback
interface
@lcalcote
Internet
MACvlan
allows creation of multiple virtual network interfaces behind
the host’s single physical interface
Each virtual interface has unique MAC and IP addresses
assigned
with restriction: the IP address needs to be in the same broadcast
domain as the physical interface
eliminates the need for the Linux bridge, NAT and port-
mapping
allowing you to connect directly to physical interface
 
@lcalcote
IPvlan
allows creation of multiple virtual network interfaces behind the host’s single
physical interface
Each virtual interface has unique IP addresses assigned
Same MAC address used for all containers
L2-mode containers must be on same network as host (similar to MACvlan)
L3-mode containers must be on different network than host
Network advertisement and redistribution into the network still needs to be done.
@lcalcote
MACvlan and IPvlan
While multiple modes of networking are supported on a given host, MACvlan
and IPvlan can’t be used on the same physical interface concurrently.
ARP and broadcast traffic, the L2 modes of these underlay drivers operate
just as a server connected to a switch does by flooding and learning using
802.1d packets
IPvlan L3-mode - No multicast or broadcast traffic is allowed in.
In short, if you’re used to running trunks down to hosts, L2 mode is for you.
If scale is a primary concern, L3 has the potential for massive scale.
@lcalcote
Direct Routing
Benefits of pushing past L2 to L3
resonates with network engineers
leverage existing network infrastructure
use routing protocols for connectivity; easier to interoperate with existing
data center across VMs and bare metal servers
Better scaling
More granular control over filtering and isolating network traffic
Easier traffic engineering for quality of service
Easier to diagnose network issues
@lcalcote
Fan Networking
a way of gaining access to many more IP addresses, expanding from one assigned IP
address to 250 more IP addresses
 “address expansion” - multiplies the number of available IP addresses on the
host, providing an extra 253 usable addresses for each host IP
Fan addresses are assigned as subnets on a virtual bridge on the host,
IP addresses are mathematically mapped between networks
uses IP-in-IP tunneling; high performance
particularly useful when running containers in a public cloud
where a single IP address is assigned to a host and spinning up additional networks is prohibitive or
running another load-balancer instance is costly
@lcalcote
Fan Networking
@lcalcote
Network Capabilities and
Services
 
IPAM, multicast, broadcast, IPv6, load-balancing, service discovery, policy, quality
of service, advanced filtering and performance are all additional considerations to
account for when selecting networking that fits your needs.
 
@lcalcote
IPv6 and IPAM
IPv6
lack of support for IPv6 in the top public clouds
reinforces the need for other networking types (overlays and fan networking)
some tier 2 public cloud providers offer support for IPv6
IPAM
most container runtime engines default to host-local for assigning addresses
to containers as they are connected to networks.
Host-local IPAM involves defining a fixed block of IP addresses to be selected.
DCHP is universally supported across the container networking projects.
CNM and CNI both have IPAM built-in and plugin frameworks for integration
with IPAM systems
@lcalcote
Text
@lcalcote
Docker 1.12 (Load-balancing)
Lee Calcote
clouds, containers, infrastructure, applications
 and their management
linkedin.com/in/leecalcote
@lcalcote
blog.gingergeek.com
lee@calcotestudios.com
Thank you!
Questions?

More Related Content

What's hot

OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...Cloud Native Day Tel Aviv
 
DockerDay2015: Docker Networking
DockerDay2015: Docker NetworkingDockerDay2015: Docker Networking
DockerDay2015: Docker NetworkingDocker-Hanoi
 
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...Cloud Native Day Tel Aviv
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetupNathan Ness
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking OverviewSreenivas Makam
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsPLUMgrid
 
Docker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-PlaneDocker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-PlaneMadhu Venugopal
 
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Andrew Randall
 
Project kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes NextProject kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes NextAntoni Segura Puimedon
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanNeependra Khare
 
Simplifying and Securing your OpenShift Network with Project Calico
Simplifying and Securing your OpenShift Network with Project CalicoSimplifying and Securing your OpenShift Network with Project Calico
Simplifying and Securing your OpenShift Network with Project CalicoAndrew Randall
 
Simplifying open stack and kubernetes networking with romana
Simplifying open stack and kubernetes networking with romanaSimplifying open stack and kubernetes networking with romana
Simplifying open stack and kubernetes networking with romanaJuergen Brendel
 
Docker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker, Inc.
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based RoutingHungWei Chiu
 
Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes CoreOS
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101Weaveworks
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 

What's hot (20)

OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
 
DockerDay2015: Docker Networking
DockerDay2015: Docker NetworkingDockerDay2015: Docker Networking
DockerDay2015: Docker Networking
 
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
 
Docker networking
Docker networkingDocker networking
Docker networking
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Unified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack CloudsUnified Underlay and Overlay SDNs for OpenStack Clouds
Unified Underlay and Overlay SDNs for OpenStack Clouds
 
Docker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-PlaneDocker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-Plane
 
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
Container Networking: the Gotchas (Mesos London Meetup 11 May 2016)
 
Project kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes NextProject kuryr returns: Docker delivered, Kubernetes Next
Project kuryr returns: Docker delivered, Kubernetes Next
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai Vallirajan
 
Simplifying and Securing your OpenShift Network with Project Calico
Simplifying and Securing your OpenShift Network with Project CalicoSimplifying and Securing your OpenShift Network with Project Calico
Simplifying and Securing your OpenShift Network with Project Calico
 
Simplifying open stack and kubernetes networking with romana
Simplifying open stack and kubernetes networking with romanaSimplifying open stack and kubernetes networking with romana
Simplifying open stack and kubernetes networking with romana
 
Docker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slidesDocker Networking : 0 to 60mph slides
Docker Networking : 0 to 60mph slides
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based Routing
 
Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 

Similar to Overlay/Underlay - Betting on Container Networking

Building a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in dockerBuilding a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in dockerJorge Juan Mendoza
 
Simple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project CalicoSimple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project CalicoEmma Gordon
 
Networking in Docker
Networking in DockerNetworking in Docker
Networking in DockerKnoldus Inc.
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Brent Doncaster
 
Intro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networkingIntro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networkingPacket
 
Introduction to the Container Networking and Security
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and SecurityCloud 66
 
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18DaoliCloud Ltd
 
Network Design patters with Docker
Network Design patters with DockerNetwork Design patters with Docker
Network Design patters with DockerDaniel Finneran
 
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...DaoliCloud Ltd
 
Metaswitch Project Calico
Metaswitch Project CalicoMetaswitch Project Calico
Metaswitch Project CalicoAndrew Kennedy
 
Practical Design Patterns in Docker Networking
Practical Design Patterns in Docker NetworkingPractical Design Patterns in Docker Networking
Practical Design Patterns in Docker NetworkingDocker, Inc.
 
Openflow for Cloud Scalability
Openflow for Cloud ScalabilityOpenflow for Cloud Scalability
Openflow for Cloud ScalabilityDaoliCloud Ltd
 
Magnum Networking Update
Magnum Networking UpdateMagnum Networking Update
Magnum Networking UpdateDaneyon Hansen
 
Container network security
Container network securityContainer network security
Container network securityDaisuke Nakajima
 
Managing multicast/igmp stream on Docker
Managing multicast/igmp stream on DockerManaging multicast/igmp stream on Docker
Managing multicast/igmp stream on DockerThierry Gayet
 
Docker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman KumarDocker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman KumarNeependra Khare
 
Single Host Docker Networking
Single Host Docker NetworkingSingle Host Docker Networking
Single Host Docker Networkingallingeek
 
Openstack Neutron Insights
Openstack Neutron InsightsOpenstack Neutron Insights
Openstack Neutron InsightsAtul Pandey
 
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...OpenStack
 
MidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integrationMidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integrationAkhilesh Dhawan
 

Similar to Overlay/Underlay - Betting on Container Networking (20)

Building a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in dockerBuilding a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in docker
 
Simple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project CalicoSimple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project Calico
 
Networking in Docker
Networking in DockerNetworking in Docker
Networking in Docker
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21
 
Intro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networkingIntro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networking
 
Introduction to the Container Networking and Security
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and Security
 
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18
Connecting Docker for Cloud IaaS (Speech at CSDN-Oct18
 
Network Design patters with Docker
Network Design patters with DockerNetwork Design patters with Docker
Network Design patters with Docker
 
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
 
Metaswitch Project Calico
Metaswitch Project CalicoMetaswitch Project Calico
Metaswitch Project Calico
 
Practical Design Patterns in Docker Networking
Practical Design Patterns in Docker NetworkingPractical Design Patterns in Docker Networking
Practical Design Patterns in Docker Networking
 
Openflow for Cloud Scalability
Openflow for Cloud ScalabilityOpenflow for Cloud Scalability
Openflow for Cloud Scalability
 
Magnum Networking Update
Magnum Networking UpdateMagnum Networking Update
Magnum Networking Update
 
Container network security
Container network securityContainer network security
Container network security
 
Managing multicast/igmp stream on Docker
Managing multicast/igmp stream on DockerManaging multicast/igmp stream on Docker
Managing multicast/igmp stream on Docker
 
Docker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman KumarDocker Networking (Libnetwork) - Lakshman Kumar
Docker Networking (Libnetwork) - Lakshman Kumar
 
Single Host Docker Networking
Single Host Docker NetworkingSingle Host Docker Networking
Single Host Docker Networking
 
Openstack Neutron Insights
Openstack Neutron InsightsOpenstack Neutron Insights
Openstack Neutron Insights
 
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
Simplifying OpenStack Networks with Routing on the Host: Gerard Chami + Scott...
 
MidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integrationMidoNet Overview - OpenStack and SDN integration
MidoNet Overview - OpenStack and SDN integration
 

More from Lee Calcote

Benchmarking Service Meshes - CNCF Networking WG
Benchmarking Service Meshes  - CNCF Networking WGBenchmarking Service Meshes  - CNCF Networking WG
Benchmarking Service Meshes - CNCF Networking WGLee Calcote
 
Service Meshes, but at what cost?
Service Meshes, but at what cost?Service Meshes, but at what cost?
Service Meshes, but at what cost?Lee Calcote
 
Establishing an Open Source Program Office
Establishing an Open Source Program OfficeEstablishing an Open Source Program Office
Establishing an Open Source Program OfficeLee Calcote
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyLee Calcote
 
CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioLee Calcote
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLee Calcote
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Lee Calcote
 
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerUnderstanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerLee Calcote
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeLee Calcote
 
Container World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsContainer World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsLee Calcote
 
Growing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and FacilitateGrowing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and FacilitateLee Calcote
 
Container Summit Austin
Container Summit AustinContainer Summit Austin
Container Summit AustinLee Calcote
 
Dockercon 16 Recap
Dockercon 16 RecapDockercon 16 Recap
Dockercon 16 RecapLee Calcote
 
From Engines to Orchestrators
From Engines to OrchestratorsFrom Engines to Orchestrators
From Engines to OrchestratorsLee Calcote
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsLee Calcote
 
Characterizing and Contrasting Container Orchestrators
 Characterizing and Contrasting Container Orchestrators Characterizing and Contrasting Container Orchestrators
Characterizing and Contrasting Container OrchestratorsLee Calcote
 
Dockercon EU 2015 Recap
Dockercon EU 2015 RecapDockercon EU 2015 Recap
Dockercon EU 2015 RecapLee Calcote
 

More from Lee Calcote (17)

Benchmarking Service Meshes - CNCF Networking WG
Benchmarking Service Meshes  - CNCF Networking WGBenchmarking Service Meshes  - CNCF Networking WG
Benchmarking Service Meshes - CNCF Networking WG
 
Service Meshes, but at what cost?
Service Meshes, but at what cost?Service Meshes, but at what cost?
Service Meshes, but at what cost?
 
Establishing an Open Source Program Office
Establishing an Open Source Program OfficeEstablishing an Open Source Program Office
Establishing an Open Source Program Office
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxy
 
CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project Nuclio
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
 
Understanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManagerUnderstanding and Extending Prometheus AlertManager
Understanding and Extending Prometheus AlertManager
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Container World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container OrchestratorsContainer World 2017 - Characterizing and Contrasting Container Orchestrators
Container World 2017 - Characterizing and Contrasting Container Orchestrators
 
Growing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and FacilitateGrowing a Community - Leveraging Meetups to Educate, Grow and Facilitate
Growing a Community - Leveraging Meetups to Educate, Grow and Facilitate
 
Container Summit Austin
Container Summit AustinContainer Summit Austin
Container Summit Austin
 
Dockercon 16 Recap
Dockercon 16 RecapDockercon 16 Recap
Dockercon 16 Recap
 
From Engines to Orchestrators
From Engines to OrchestratorsFrom Engines to Orchestrators
From Engines to Orchestrators
 
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-orsCharacterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
Characterizing and contrasting kuhn tey-ner awr-kuh-streyt-ors
 
Characterizing and Contrasting Container Orchestrators
 Characterizing and Contrasting Container Orchestrators Characterizing and Contrasting Container Orchestrators
Characterizing and Contrasting Container Orchestrators
 
Dockercon EU 2015 Recap
Dockercon EU 2015 RecapDockercon EU 2015 Recap
Dockercon EU 2015 Recap
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Overlay/Underlay - Betting on Container Networking

  • 1. Betting on Container Networking Lee Calcote July 27th, 2016 Overlay Underlay  http://calcotestudios.com/over-under
  • 2. http://calcotestudios.com/oubcn Lee Calcote clouds, containers, infrastructure, applications  and their management linkedin.com/in/leecalcote @lcalcote blog.gingergeek.com lee@calcotestudios.com
  • 5. Preset Expectations                         Experience & Management           Reliability & Performance same demands and measurements developer-friendly and application-driven simple to use and deploy for developers and operators better or at least on par with their existing virtualized data center networking
  • 7. Very interesting but no need to actually know these @lcalcote
  • 8. (CNM) Container Network Model   ...is a specification proposed by Docker, adopted by projects such as   Plugins built by projects such as , , and libnetwork Weave Project Calico Kuryr (CNI) Container Network Interface   ...is a specification proposed by CoreOS and adopted by projects such as , , , , and     Plugins created by projects such as , , and rkt Kurma Kubernetes Cloud Foundry Apache Mesos Weave Project Calico Contiv Networking @lcalcote Container Networking Specifications
  • 10. Container Network Model Topology @lcalcote Network Sandbox Endpoint Backend Network Docker Container Network Sandbox Endpoint Docker Container Network Sandbox Endpoint Docker Container Endpoint Frontend Network
  • 12. @lcalcote Container Network Interface Flow   1. Container runtime needs to: 1. allocate a network namespace to the container and assign a container ID 2. pass along a number of parameters (CNI config) to network driver. 2. Network driver attaches container to a network and then reports the assigned IP address back to the container runtime (via JSON schema)
  • 13. @lcalcote CNI Network (JSON) { "name": "mynet", "type": "bridge", "bridge": "cni0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "subnet": "10.22.0.0/16", "routes": [ { "dst": "0.0.0.0/0" } ] }
  • 14. CNI and CNM Similar in that each... ...are driver-based, and therefore democratize the selection of which type of container networking  ...allow multiple network drivers to be active and used concurrently each provide a one-to-one mapping of network to that network’s driver ...allow containers to join one or more networks. ...allow the container runtime to launch the network in its own namespace  segregate the application/business logic of connecting the container to the network to the network driver.   @lcalcote
  • 15. CNI and CNM Different in that... CNI supports any container runtime CNM only support Docker runtime CNI is simpler, has adoption beyond its creator CNM acts as a broker for conflict resolution CNI is still considering its approach to arbitration @lcalcote
  • 16. Types of Container Networking None Links and Ambassadors Container-mapped Bridge Host Overlay   Underlay MACvlan IPvlan Direct Routing Point-to-Point Fan Networking   @lcalcote
  • 17. None @lcalcote container receives a network stack, but lacks an external network interface.   it does, however, receive a loopback interface.
  • 18. Links facilitate single host connectivity "discovery" via /etc/hosts or env vars @lcalcote Ambassadors facilitate multi-host connectivity uses a tcp port forwarder (socat) Web Host MySQL Ambassador PHP DB Host PHP Ambassador MySQL link link
  • 19. Container-Mapped one container reuses (maps to) the networking namespace of another container. @lcalcote may only be invoked when running a docker container (cannot be defined in Dockerfile):     --net=container=some_container_name_or_id
  • 20. Bridge Ah, yes, docker0 default networking for Docker uses a host-internal network leverages iptables for network address translation (NAT) and port-mapping @lcalcote
  • 21. Host container created shares its network namespace with the host default Mesos networking mode better performance  easy to understand and troubleshoot suffers port conflicts secure? @lcalcote
  • 22. Overlay use networking tunnels to delivery communication across hosts   Most useful in hybrid cloud scenarios or when shadow IT is needed Many tunneling technologies exist VXLAN being the most commonly used Requires distributed key-value store @lcalcote
  • 23. K/V Store for Overlay Networking Docker - requires K/V store (built-in as experimental as of 1.12) WeaveMesh - does not require K/V store WeaveNet - limited to single network; requires K/V store Flannel -  requires K/V store Plumgrid - requires K/V store; built-in and not pluggable Midokura - requires K/V store; built-in and not pluggable Calico - requires K/V store @lcalcote
  • 24. Underlays expose host interfaces (i.e. the physical network interface at eth0) directly to containers running on the host MACvlan IPvlan Direct Routing @lcalcote not necessarily public cloud friendly
  • 25. Point-to-Point Default rkt networking mode Uses NAT (IPMASQ) by default Creates a virtual ethernet pair placing one on the host and the other into the container pod leverages iptables to provide port-forwarding for inbound traffic to the pod internal communication between other containers in the pod over the loopback interface @lcalcote Internet
  • 26. MACvlan allows creation of multiple virtual network interfaces behind the host’s single physical interface Each virtual interface has unique MAC and IP addresses assigned with restriction: the IP address needs to be in the same broadcast domain as the physical interface eliminates the need for the Linux bridge, NAT and port- mapping allowing you to connect directly to physical interface   @lcalcote
  • 27. IPvlan allows creation of multiple virtual network interfaces behind the host’s single physical interface Each virtual interface has unique IP addresses assigned Same MAC address used for all containers L2-mode containers must be on same network as host (similar to MACvlan) L3-mode containers must be on different network than host Network advertisement and redistribution into the network still needs to be done. @lcalcote
  • 28. MACvlan and IPvlan While multiple modes of networking are supported on a given host, MACvlan and IPvlan can’t be used on the same physical interface concurrently. ARP and broadcast traffic, the L2 modes of these underlay drivers operate just as a server connected to a switch does by flooding and learning using 802.1d packets IPvlan L3-mode - No multicast or broadcast traffic is allowed in. In short, if you’re used to running trunks down to hosts, L2 mode is for you. If scale is a primary concern, L3 has the potential for massive scale. @lcalcote
  • 29. Direct Routing Benefits of pushing past L2 to L3 resonates with network engineers leverage existing network infrastructure use routing protocols for connectivity; easier to interoperate with existing data center across VMs and bare metal servers Better scaling More granular control over filtering and isolating network traffic Easier traffic engineering for quality of service Easier to diagnose network issues @lcalcote
  • 30. Fan Networking a way of gaining access to many more IP addresses, expanding from one assigned IP address to 250 more IP addresses  “address expansion” - multiplies the number of available IP addresses on the host, providing an extra 253 usable addresses for each host IP Fan addresses are assigned as subnets on a virtual bridge on the host, IP addresses are mathematically mapped between networks uses IP-in-IP tunneling; high performance particularly useful when running containers in a public cloud where a single IP address is assigned to a host and spinning up additional networks is prohibitive or running another load-balancer instance is costly @lcalcote
  • 32. Network Capabilities and Services   IPAM, multicast, broadcast, IPv6, load-balancing, service discovery, policy, quality of service, advanced filtering and performance are all additional considerations to account for when selecting networking that fits your needs.   @lcalcote
  • 33. IPv6 and IPAM IPv6 lack of support for IPv6 in the top public clouds reinforces the need for other networking types (overlays and fan networking) some tier 2 public cloud providers offer support for IPv6 IPAM most container runtime engines default to host-local for assigning addresses to containers as they are connected to networks. Host-local IPAM involves defining a fixed block of IP addresses to be selected. DCHP is universally supported across the container networking projects. CNM and CNI both have IPAM built-in and plugin frameworks for integration with IPAM systems @lcalcote
  • 35. Lee Calcote clouds, containers, infrastructure, applications  and their management linkedin.com/in/leecalcote @lcalcote blog.gingergeek.com lee@calcotestudios.com Thank you! Questions?