SlideShare a Scribd company logo
v
Networking in Docker EE 2.0
with Kubernetes and Swarm
SW Engineer, Docker
Flavio Crisciani
SW Engineer, Docker
Abhinandan Prativadi
Objectives
Design
principles
behind
Docker EE
Focus on
operator
deployment
goals
What’s the
best fit for
Kubernetes
and Swarm
Final
takeaways
SWARM KUBERNETES
Docker EE Design Principles
Multiple orchestrators
Multiple OSs
Multiple infrastructure
Choice SecurityAgility
Safer apps
Chain of custody
Threat mitigation
Unified operations
Cost efficiency
Docker EE Architecture
Secure Cluster Management
App Scheduler
Swarm KubernetesOR
Docker EE Cluster
Universal Control Plane (UCP)
Node
• Each node is K8s and Swarm ready
• Operator chooses the production orchestrator
• Freedom to choose orchestrator
Node Node
Operator network design goals
Network Security
Multi-tenancy
Observability
Flexibility
Data-path
Migration
Network Security
Practice of preventing unauthorized access, use,
disclosure, disruption, modification, inspection,
recording or destruction of information
Control planeData plane Management
Plane
Information
segregation
Manager
Mgmt Plane: Node identities with mutual TLS
Control Plane: Encrypted gossip based DB
Data Plane: Optionally encrypted with IPSec
Manager Manager
Network Security
WorkerWorker
Network Security
ucp-bundle-john $docker network create -d overlay john-network
Error response from daemon: access denied:
no access to Network Create, on collection
ucp-bundle-admin $source env.sh
Cluster "ucp_10.1.1.1:6443_admin" set.
User "ucp_10.1.1.1:6443_admin" set.
Context "ucp_10.1.1.1:6443_admin" created.
ucp-bundle-admin $docker network create --opt encrypted --driver overlay net1
l5vtb59oqk6r7fgzrjlou6llg
Jun 11 21:13:57 ubuntu-1 dockerd[4721]: time="2018-06-11T21:13:57.200950113Z"
level=debug msg="Initial encryption keys: [(key: dda14, tag: 0x1eb1) (key: b6b91,
tag: 0x1eb0) (key: 0e8a0, tag: 0x1eb2)]"
Jun 11 21:13:57 ubuntu-1 dockerd[4721]: time="2018-06-11T21:13:57.201251695Z"
level=debug msg="Initial encryption keys: [(key: dda14, tag: 0x1eb1) (key: b6b91,
tag: 0x1eb0) (key: 0e8a0, tag: 0x1eb2)]"
Manager
Mgmt Plane: Secure etcd, api-server access control
Control Plane: Calico BGP based Control plane
Data Plane: App to app encryption with service mesh
Manager Manager
Network Security
WorkerWorker
Network Security
ucp-bundle-john $source env.sh
Cluster "ucp_10.1.1.1:6443_john" set.
User "ucp_10.1.1.1:6443_john" set.
Context "ucp_10.1.1.1:6443_john" created.
ucp-bundle-john $
ucp-bundle-john $kubectl get pods -n kube-system
Error from server (Forbidden): pods is forbidden: User "john" cannot list
pods in the namespace "kube-system": access denied
Multi-tenancy
Concept that refers to the logical isolation of shared
virtual compute, storage, and network resources.
Application
isolation
Traffic
isolation
Multi-tenancy
Constraints allow to specify where a workload can
be deployed
Containers in different networks are isolated.
Worker
Worker
Net1 Net2
Multi-tenancy
$docker service create --name redis_2 --constraint 'node.labels.type ==
queue' redis:3.0.6
$docker service create --name prod-db --network net1 alpine sleep 9000
X8qnrfhhjrcis5nk6fx6mfc5w
$docker service create --name prod-web --network net2 alpine sleep 9000
T5uwwccffj0qg0zeddfnd5ouu
$docker exec -it prod-web.1.87aa93qtbg1dvxip9cpizjdls sh
/ # ping prod-db.1.87aa93qtbg1dvxip9cpizjdls
ping: bad address 'prod-db.1.87aa93qtbg1dvxip9cpizjdls'
Multi-tenancy
Node Affinity, Taints and Tolerations allow to
specify where a workload can be scheduled and
deployed
Policies define network connectivity
between pods
Worker
Worker
Multi-tenancy
$kubectl taint nodes node1 Tenant=node.org1:NoSchedule
…..
tolerations:
- key: ”Tenant"
operator: "Equal"
value: ”node.org1"
effect: "NoSchedule"
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: name: default-deny
spec:
podSelector: {}
policyTypes:
- Ingress
Observability
Is a measure of how well internal states of a
system can be inferred from knowledge of its
external outputs.
Control
Plane
Data
Plane
Metrics
Observability
Mgmt Plane: Cluster key-value store based on raft
Control Plane: Gossip based datastore
Metrics through swarm events
Data Plane
• Linux: network namespaces, iptables, IPVS
• Windows: Windows Host Network Service
Observability
Mgmt Plane: etcd, kubectl
Control Plane: BGP for route distribution
Metrics through Prometheus
Data Plane
• Linux: L3 forwarding, iptables and ipsets, nsenter, iproute
• Windows: WinCNI that configures windows HNS
Flexibility
Ability of a system to adapt to different ecosystems
Network
Drivers
Cluster
Configuration
Flexibility
Allows multiple drivers,
most used in is overlay
Abstraction on top of
physical infrastructure
Dynamic network
creation
ORIGINAL ETHERNET FRAME
VXLAN FRAME
Available Drivers: Overlay, MacVlan, IPVlan, external drivers
Flexibility
Multiple CNI
plugins available
CNI integrated with the
cloud provider
Static network
configuration
ORIGINAL ETHERNET FRAME
IPINIP FRAME
Available Drivers: IPinIP, Native L3 routing
Data Path
Data-path traffic ingress and egress out of the
cluster and between workloads
Concept of
Service
Service
Discovery
Cloud
Provider
Performance
Data Path
Service is a group of containers sharing the same image
Forwarding performance depends on the driver,
but leverages Linux and Windows native data path
Service discovery is built-in served by the docker
daemon and extensible
Data Path
Service is a logical set of pods determined by label selectors.
Forwarding performance depends on the driver,
but leverages Linux and Windows native data path
Service discovery is swappable. kube-dns by default
Migration
Process of transferring apps between different systems
Docker EE
nodes are
Swarm and K8s
enabled
Both networking
stacks work
independently
Node
What fits best ?
App
Getting started InnovationFirst Project Scale
It depends…
Docker EE
allows you to
choose what fits
best for your
purpose.
Leverage your
current
expertise or
investment.
Swarm is simpler
with native
Docker
experience.
Kubernetes
brings the flexibility
and native
integration with
cloud providers.
Final Takeaways
Thank you!
Questions??

More Related Content

What's hot (20)

PPT
Container security
Anthony Chow
 
PDF
Docker Container: isolation and security
宇 傅
 
PPTX
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Cloud Native Day Tel Aviv
 
PPTX
Container security
Anthony Chow
 
PPTX
Security best practices for kubernetes deployment
Michael Cherny
 
PDF
Project kuryr returns: Docker delivered, Kubernetes Next
Antoni Segura Puimedon
 
PPTX
Understanding the container landscape and it associated projects
Anthony Chow
 
PPTX
Docker summit : Docker Networking Control-plane & Data-Plane
Madhu Venugopal
 
PPT
Open Source Cloud Computing -Eucalyptus
Sameer Naik
 
PDF
Inside Docker for Fedora20/RHEL7
Etsuji Nakai
 
PPTX
Tectonic Summit 2016: Networking for Kubernetes
CoreOS
 
PPTX
Docker: Aspects of Container Isolation
allingeek
 
PPTX
Introduction to linux containers
Google
 
PDF
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Docker, Inc.
 
PDF
Linux Container Technology inside Docker with RHEL7
Etsuji Nakai
 
PPTX
Understanding container security
John Kinsella
 
PPTX
Coscup SDN workshop - mininet
HungWei Chiu
 
PDF
Kubernetes networking in AWS
Zvika Gazit
 
PDF
Security of Linux containers in the cloud
Dobrica Pavlinušić
 
PPTX
Microservices Network Architecture 101
Cumulus Networks
 
Container security
Anthony Chow
 
Docker Container: isolation and security
宇 傅
 
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Cloud Native Day Tel Aviv
 
Container security
Anthony Chow
 
Security best practices for kubernetes deployment
Michael Cherny
 
Project kuryr returns: Docker delivered, Kubernetes Next
Antoni Segura Puimedon
 
Understanding the container landscape and it associated projects
Anthony Chow
 
Docker summit : Docker Networking Control-plane & Data-Plane
Madhu Venugopal
 
Open Source Cloud Computing -Eucalyptus
Sameer Naik
 
Inside Docker for Fedora20/RHEL7
Etsuji Nakai
 
Tectonic Summit 2016: Networking for Kubernetes
CoreOS
 
Docker: Aspects of Container Isolation
allingeek
 
Introduction to linux containers
Google
 
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Docker, Inc.
 
Linux Container Technology inside Docker with RHEL7
Etsuji Nakai
 
Understanding container security
John Kinsella
 
Coscup SDN workshop - mininet
HungWei Chiu
 
Kubernetes networking in AWS
Zvika Gazit
 
Security of Linux containers in the cloud
Dobrica Pavlinušić
 
Microservices Network Architecture 101
Cumulus Networks
 

Similar to Networking in Docker EE 2.0 with Kubernetes and Swarm (20)

PPTX
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
PDF
Building a sdn solution for the deployment of web application stacks in docker
Jorge Juan Mendoza
 
PPTX
SW Docker Security
Stephane Woillez
 
PPTX
CloudComp 2015 - SDN-Cloud Testbed with Hyper-convergent SmartX Boxes
GIST (Gwangju Institute of Science and Technology)
 
PPTX
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
Guillaume Morini
 
PPTX
DCUS17 : Docker networking deep dive
Madhu Venugopal
 
PPTX
Container world hybridnetworking_rev2
Prem Sankar Gopannan
 
PDF
KubernetesNetworkingAndImplementation-Lecture.pdf
AnkitShukla661141
 
PDF
Tungsten Fabric Overview
Michelle Holley
 
PDF
An Introduce of OPNFV (Open Platform for NFV)
Mario Cho
 
PDF
Kubernetes
Linjith Kunnon
 
PDF
Simplify Networking for Containers
LinuxCon ContainerCon CloudOpen China
 
PPTX
Optimising nfv service chains on open stack using docker
Ananth Padmanabhan
 
PPTX
Optimising nfv service chains on open stack using docker
Satya Sanjibani Routray
 
PPTX
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
PPTX
Optimising nfv service chains on open stack using docker
Rahul Krishna Upadhyaya
 
PDF
VMworld 2013: Deploying VMware NSX Network Virtualization
VMworld
 
PDF
Multi-Container Apps spanning Docker, Mesos and OpenStack
Docker, Inc.
 
PPTX
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
Docker, Inc.
 
PDF
Effective Data Pipelines with Docker & Jenkins - Brian Donaldson
Docker, Inc.
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
Building a sdn solution for the deployment of web application stacks in docker
Jorge Juan Mendoza
 
SW Docker Security
Stephane Woillez
 
CloudComp 2015 - SDN-Cloud Testbed with Hyper-convergent SmartX Boxes
GIST (Gwangju Institute of Science and Technology)
 
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
Guillaume Morini
 
DCUS17 : Docker networking deep dive
Madhu Venugopal
 
Container world hybridnetworking_rev2
Prem Sankar Gopannan
 
KubernetesNetworkingAndImplementation-Lecture.pdf
AnkitShukla661141
 
Tungsten Fabric Overview
Michelle Holley
 
An Introduce of OPNFV (Open Platform for NFV)
Mario Cho
 
Kubernetes
Linjith Kunnon
 
Simplify Networking for Containers
LinuxCon ContainerCon CloudOpen China
 
Optimising nfv service chains on open stack using docker
Ananth Padmanabhan
 
Optimising nfv service chains on open stack using docker
Satya Sanjibani Routray
 
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
Optimising nfv service chains on open stack using docker
Rahul Krishna Upadhyaya
 
VMworld 2013: Deploying VMware NSX Network Virtualization
VMworld
 
Multi-Container Apps spanning Docker, Mesos and OpenStack
Docker, Inc.
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
Docker, Inc.
 
Effective Data Pipelines with Docker & Jenkins - Brian Donaldson
Docker, Inc.
 
Ad

Recently uploaded (20)

PDF
3rd International Conference on Machine Learning and IoT (MLIoT 2025)
ClaraZara1
 
PDF
REINFORCEMENT LEARNING IN DECISION MAKING SEMINAR REPORT
anushaashraf20
 
PPT
Testing and final inspection of a solar PV system
MuhammadSanni2
 
PPTX
Final Major project a b c d e f g h i j k l m
bharathpsnab
 
PPTX
DATA BASE MANAGEMENT AND RELATIONAL DATA
gomathisankariv2
 
PPTX
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
PDF
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
PDF
Electrical Engineer operation Supervisor
ssaruntatapower143
 
PPT
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
PDF
mbse_An_Introduction_to_Arcadia_20150115.pdf
henriqueltorres1
 
PDF
Viol_Alessandro_Presentazione_prelaurea.pdf
dsecqyvhbowrzxshhf
 
PPTX
Worm gear strength and wear calculation as per standard VB Bhandari Databook.
shahveer210504
 
PDF
Digital water marking system project report
Kamal Acharya
 
PPTX
Knowledge Representation : Semantic Networks
Amity University, Patna
 
PPT
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
PDF
SERVERLESS PERSONAL TO-DO LIST APPLICATION
anushaashraf20
 
PDF
AI TECHNIQUES FOR IDENTIFYING ALTERATIONS IN THE HUMAN GUT MICROBIOME IN MULT...
vidyalalltv1
 
PPTX
MODULE 03 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
PPTX
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
PPTX
2025 CGI Congres - Surviving agile v05.pptx
Derk-Jan de Grood
 
3rd International Conference on Machine Learning and IoT (MLIoT 2025)
ClaraZara1
 
REINFORCEMENT LEARNING IN DECISION MAKING SEMINAR REPORT
anushaashraf20
 
Testing and final inspection of a solar PV system
MuhammadSanni2
 
Final Major project a b c d e f g h i j k l m
bharathpsnab
 
DATA BASE MANAGEMENT AND RELATIONAL DATA
gomathisankariv2
 
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
Electrical Engineer operation Supervisor
ssaruntatapower143
 
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
mbse_An_Introduction_to_Arcadia_20150115.pdf
henriqueltorres1
 
Viol_Alessandro_Presentazione_prelaurea.pdf
dsecqyvhbowrzxshhf
 
Worm gear strength and wear calculation as per standard VB Bhandari Databook.
shahveer210504
 
Digital water marking system project report
Kamal Acharya
 
Knowledge Representation : Semantic Networks
Amity University, Patna
 
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
SERVERLESS PERSONAL TO-DO LIST APPLICATION
anushaashraf20
 
AI TECHNIQUES FOR IDENTIFYING ALTERATIONS IN THE HUMAN GUT MICROBIOME IN MULT...
vidyalalltv1
 
MODULE 03 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
2025 CGI Congres - Surviving agile v05.pptx
Derk-Jan de Grood
 
Ad

Networking in Docker EE 2.0 with Kubernetes and Swarm

  • 1. v Networking in Docker EE 2.0 with Kubernetes and Swarm
  • 2. SW Engineer, Docker Flavio Crisciani SW Engineer, Docker Abhinandan Prativadi
  • 3. Objectives Design principles behind Docker EE Focus on operator deployment goals What’s the best fit for Kubernetes and Swarm Final takeaways SWARM KUBERNETES
  • 4. Docker EE Design Principles Multiple orchestrators Multiple OSs Multiple infrastructure Choice SecurityAgility Safer apps Chain of custody Threat mitigation Unified operations Cost efficiency
  • 5. Docker EE Architecture Secure Cluster Management App Scheduler Swarm KubernetesOR Docker EE Cluster Universal Control Plane (UCP) Node • Each node is K8s and Swarm ready • Operator chooses the production orchestrator • Freedom to choose orchestrator Node Node
  • 6. Operator network design goals Network Security Multi-tenancy Observability Flexibility Data-path Migration
  • 7. Network Security Practice of preventing unauthorized access, use, disclosure, disruption, modification, inspection, recording or destruction of information Control planeData plane Management Plane Information segregation
  • 8. Manager Mgmt Plane: Node identities with mutual TLS Control Plane: Encrypted gossip based DB Data Plane: Optionally encrypted with IPSec Manager Manager Network Security WorkerWorker
  • 9. Network Security ucp-bundle-john $docker network create -d overlay john-network Error response from daemon: access denied: no access to Network Create, on collection ucp-bundle-admin $source env.sh Cluster "ucp_10.1.1.1:6443_admin" set. User "ucp_10.1.1.1:6443_admin" set. Context "ucp_10.1.1.1:6443_admin" created. ucp-bundle-admin $docker network create --opt encrypted --driver overlay net1 l5vtb59oqk6r7fgzrjlou6llg Jun 11 21:13:57 ubuntu-1 dockerd[4721]: time="2018-06-11T21:13:57.200950113Z" level=debug msg="Initial encryption keys: [(key: dda14, tag: 0x1eb1) (key: b6b91, tag: 0x1eb0) (key: 0e8a0, tag: 0x1eb2)]" Jun 11 21:13:57 ubuntu-1 dockerd[4721]: time="2018-06-11T21:13:57.201251695Z" level=debug msg="Initial encryption keys: [(key: dda14, tag: 0x1eb1) (key: b6b91, tag: 0x1eb0) (key: 0e8a0, tag: 0x1eb2)]"
  • 10. Manager Mgmt Plane: Secure etcd, api-server access control Control Plane: Calico BGP based Control plane Data Plane: App to app encryption with service mesh Manager Manager Network Security WorkerWorker
  • 11. Network Security ucp-bundle-john $source env.sh Cluster "ucp_10.1.1.1:6443_john" set. User "ucp_10.1.1.1:6443_john" set. Context "ucp_10.1.1.1:6443_john" created. ucp-bundle-john $ ucp-bundle-john $kubectl get pods -n kube-system Error from server (Forbidden): pods is forbidden: User "john" cannot list pods in the namespace "kube-system": access denied
  • 12. Multi-tenancy Concept that refers to the logical isolation of shared virtual compute, storage, and network resources. Application isolation Traffic isolation
  • 13. Multi-tenancy Constraints allow to specify where a workload can be deployed Containers in different networks are isolated. Worker Worker Net1 Net2
  • 14. Multi-tenancy $docker service create --name redis_2 --constraint 'node.labels.type == queue' redis:3.0.6 $docker service create --name prod-db --network net1 alpine sleep 9000 X8qnrfhhjrcis5nk6fx6mfc5w $docker service create --name prod-web --network net2 alpine sleep 9000 T5uwwccffj0qg0zeddfnd5ouu $docker exec -it prod-web.1.87aa93qtbg1dvxip9cpizjdls sh / # ping prod-db.1.87aa93qtbg1dvxip9cpizjdls ping: bad address 'prod-db.1.87aa93qtbg1dvxip9cpizjdls'
  • 15. Multi-tenancy Node Affinity, Taints and Tolerations allow to specify where a workload can be scheduled and deployed Policies define network connectivity between pods Worker Worker
  • 16. Multi-tenancy $kubectl taint nodes node1 Tenant=node.org1:NoSchedule ….. tolerations: - key: ”Tenant" operator: "Equal" value: ”node.org1" effect: "NoSchedule" apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny spec: podSelector: {} policyTypes: - Ingress
  • 17. Observability Is a measure of how well internal states of a system can be inferred from knowledge of its external outputs. Control Plane Data Plane Metrics
  • 18. Observability Mgmt Plane: Cluster key-value store based on raft Control Plane: Gossip based datastore Metrics through swarm events Data Plane • Linux: network namespaces, iptables, IPVS • Windows: Windows Host Network Service
  • 19. Observability Mgmt Plane: etcd, kubectl Control Plane: BGP for route distribution Metrics through Prometheus Data Plane • Linux: L3 forwarding, iptables and ipsets, nsenter, iproute • Windows: WinCNI that configures windows HNS
  • 20. Flexibility Ability of a system to adapt to different ecosystems Network Drivers Cluster Configuration
  • 21. Flexibility Allows multiple drivers, most used in is overlay Abstraction on top of physical infrastructure Dynamic network creation ORIGINAL ETHERNET FRAME VXLAN FRAME Available Drivers: Overlay, MacVlan, IPVlan, external drivers
  • 22. Flexibility Multiple CNI plugins available CNI integrated with the cloud provider Static network configuration ORIGINAL ETHERNET FRAME IPINIP FRAME Available Drivers: IPinIP, Native L3 routing
  • 23. Data Path Data-path traffic ingress and egress out of the cluster and between workloads Concept of Service Service Discovery Cloud Provider Performance
  • 24. Data Path Service is a group of containers sharing the same image Forwarding performance depends on the driver, but leverages Linux and Windows native data path Service discovery is built-in served by the docker daemon and extensible
  • 25. Data Path Service is a logical set of pods determined by label selectors. Forwarding performance depends on the driver, but leverages Linux and Windows native data path Service discovery is swappable. kube-dns by default
  • 26. Migration Process of transferring apps between different systems Docker EE nodes are Swarm and K8s enabled Both networking stacks work independently Node
  • 27. What fits best ? App Getting started InnovationFirst Project Scale It depends…
  • 28. Docker EE allows you to choose what fits best for your purpose. Leverage your current expertise or investment. Swarm is simpler with native Docker experience. Kubernetes brings the flexibility and native integration with cloud providers. Final Takeaways