docker for ops: docker networking deep dive, considerations and troubleshooting by madhu venugopal...

16
Docker for Ops: Docker Networking Deep Dive Madhu Venugopal Jana Radhakrishnan

Upload: docker-inc

Post on 16-Apr-2017

3.790 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Docker for Ops: Docker Networking Deep Dive

Madhu Venugopal

Jana Radhakrishnan

Page 2: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

OverviewWhat is libnetworkNew features in 1.12

Agenda

Deep DiveMultihost networkingSecure Control PlaneSecure Data planeService DiscoveryNative LoadbalacingRouting Mesh

FinishDemoQ&A

Page 3: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Overview

Page 4: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

It is not just a driver interface

• Docker networking fabric• Defines Container Networking Model• Provides builtin IP address management• Provides native multi-host networking• Provides native Service Discovery and Load Balancing• Allows for extensions by the ecosystem

What is libnetwork?

Page 5: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

New features in 1.12 swarm mode

CNM

Routing Mesh

Multi-hostNetworking without external k/v store

Service Discovery

SecureData-Plane

SecureControl-Plane

LoadBalancing

• Cluster aware• De-centralized control

plane• Highly scalable

Page 6: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Macvlan driver

• Out of experimental• Integrates with Underlay• Place containers in your

existing vlans

Page 7: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

MacVlan# Create a macvlan network$ docker network create -d macvlan \ --subnet=192.168.0.0/16 \ —-ip-range=192.168.41.0/24 \ --aux-address="favorite_ip_ever=192.168.41.2" \ --gateway=192.168.41.1 \ -o parent=eth0.41 macnet41

# First address is the specified gateway, second is aux$ docker run --net=macnet41 -it --rm alpine /bin/sh

Page 8: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Deep Dive

Page 9: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Multi-host networkingManager

Network CreateOrchestrator

Allocator

Scheduler

Dispatcher

Service Create

Task Create

Task Dispatch

Task Dispatch

Gossip

Worker1 Worker2

Engine

Libnetwork

Engine

Libnetwork

• The VXLAN based data path remains unchanged

• No external key-value store necessary

• Central resource allocation• Improved performance• Highly scalable

Page 10: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

• Gossip based protocol• Network scoped• Fast convergence• Secure by default

• periodic key rotations• swarm native key-exchange

• Highly scalable

Network control plane Cluster Scope Gossip

W1W2

W3

W1W5

W4

Network Scope Gossip

Network Scope Gossip

Page 11: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

• Available as an option during overlay network creation

• Uses kernel IPSec modules• On-demand tunnel setup• Swarm native key-exchange• Periodic key rotations• Highly performant

Secure dataplaneWorker1

Worker2

Worker3

secure network

secure network

IPSec Tunnel

IPSec Tunnel

IPSec Tunnel

secure network

secure network

non-secure

network

non-secure

network

Open UDP traffic

Page 12: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

• Provided by embedded DNS• Highly available• Uses Network Control Plane to learn state• Can be used to discover both tasks and

services

Service Discovery

engine

DNS Server

DNS Resolver DNS Resolver

DNS requests

Page 13: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

• Provided by embedded DNS• Highly available• Uses Network Control Plane to learn state• Can be used to discover both tasks and

services• Minimal Overhead because of CNM• Can use DNS RR instead as an option

Internal Load balancer Task1Service

A

Task2 Service

A Task3 Service

A

Client1 Client2

VIP LB VIP LB

Page 14: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

• Builtin routing mesh for edge routing• Worker nodes themselves participate in

ingress routing mesh• All worker nodes accept connection

requests on PublishedPort• Port translation happens at the worker

node• Same internal load balancing mechanism

used to load balance external requests

Routing meshExternal

Loadbalancer (optional)

Task1 ServiceA Task1

ServiceA

Task1 ServiceA

Worker1 Worker2

Ingress Network

8080 8080

VIP LB VIP LB

8080->80 8080->80

Page 15: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

FinishDemo and Q&A

Page 16: Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooting by Madhu Venugopal and Jana Radhakrishnan

Thank you!