SlideShare une entreprise Scribd logo
1  sur  46
Secure Your Containers!
What Network Admins
Should Know When Moving
Into Production Cynthia Thomas
Systems Engineer
@_techcet_
{ Why is networking an afterthought?
Containers, Containers,
Containers!
Why Containers?
• Much lighter weight and less overhead than virtual
machines
• Don’t need to copy entire OS or libraries – keep track of deltas
• More efficient unit of work for cloud-native aps
• Crucial tools for rapid-scale application development
• Increase density on a physical host
• Portable container image for moving/migrating resources
Containers: Old and New
• LXC: operating system-level virtualization through a virtual
environment that has its own process and network space
• 8 year old technology
• Leverages Linux kernel cgroup
• Also other namespaces for isolation
• Focus on System Containers
• Security:
• Previously possible to run code on Host systems as root on guest system
• LXC 1.0 brought “unprivileged containers” for HW accessibility restrictions
• Ecosystem:
• Vendor neutral, Evolving LXD, CGManager, LXCFS
Containers: Old and New
• Explosive growth: Docker created a de-facto standard image format and API for
defining and interacting with containers
• Docker: also operating system-level virtualization through a virtual environment
• 3 year old technology
• Application-centric API
• Also leverages Linux kernel cgroups and kernal namespaces
• Moved from LXC to libcontainer implementation
• Portable deployment across machines
• Brings image management and more seamless updates through versioning
• Security:
• Networking: linuxbridge, IPtables
• Ecosystem:
• CoreOS, Rancher, Kubernetes
Container Orchestration Engines
• Step forth the management of containers for application
deployment!
• Scale applications with clusters where the underlying
deployment unit is a container
• Examples include Docker Swarm, Kubernetes, Apache Mesos
Today’s COEs have vulnerabilities
What’s the problem?
Why are containers insecure?
• They weren’t designed with full isolation like VMs
• Not everything in Linux is namespaced
• What do they do to the network?
COEs help container orchestration!
…but what about networking?
• Scaling Issues for ad-hoc security
implementation with Security/Policy
complexity
• Which networking model to choose? CNM? CNI?
• Why is network security always seemingly considered last?
{ Your Network Security team!
And you should too.
Who’s going to care?
Containers add network complexity!!!
• More components
= more endpoints
• Network Scaling
Issues
• Security/Policy
complexity
Perimeter Security approach is not enough
• Legacy architectures
tended to put higher layer
services like Security and
FWs at the core
• Perimeter protection is
useful for north-south
flows, but what about
east-west?
• More = better? How to
manage more pinch
points?
#ThrowbackThursday
What did OpenStack do?
• Started in 2010 as an open source community for cloud compute
• Gained a huge following and became production ready
• Enabled collaboration amongst engineers for technology advancement
#ThrowbackThursday
Neutron came late in the game!
• Took 3 years before dedicated project formed
• Neutron enabled third party plugin solutions
• Formed advanced networking framework via community
What is Neutron?
• Production-grade open framework for Networking:
 Multi-tenancy
 Scalable, fault-tolerant devices (or device-
agnostic network services).
 L2 isolation
 L3 routing isolation
• VPC
• Like VRF (virtual routing and fwd-ing)
 Scalable Gateways
 Scalable control plane
• ARP, DHCP, ICMP
 Floating/Elastic Ips
 Decoupled from Physical Network
 Stateful NAT
• Port masquerading
• DNAT
 ACLs
 Stateful (L4) Firewalls
• Security Groups
 Load Balancing with health checks
 Single Pane of Glass (API, CLI, GUI)
 Integration with COEs & management platforms
• Docker Swarm, K8S
• OpenStack, CloudStack
• vSphere, RHEV, System Center
Hardened Neutron Plugins
{ Leverage Neutron
Kuryr Can Deliver Networking
to Containers
{
Bridging the container
networking framework with
OpenStack network abstractions
The Kuryr Mission
What is Kuryr?
Kuryr has become a collection of projects
and repositories:
- kuryr-lib: common libraries (neutron-client,
keystone-client)
- kuryr-libnetwork: docker networking plugin
- kuryr-kubernetes: k8s api watcher and CNI driver
- fuxi: docker cinder driver
Project Kuryr Contributions
As of Oct. 18th, 2016: http://stackalytics.com/?release=all&module=kuryr-
group&metric=commits
Some previous* networking options with
Docker
STOP
IPtables maybe?
IPtables maybe?
Done with Neutron? Tell me more,
please!
• libnetwork:
• Null (with nothing in its networking namespace)
• Bridge
• Overlay
• Remote
Kuryr: Docker (1.9+)’s remote driver
for Neutron networking
Kuryr implements a libnetwork remote network
driver and maps its calls to OpenStack Neutron.
It translates between libnetwork's Container
Network Model (CNM) and Neutron's networking
model.
Kuryr also acts as a libnetwork IPAM driver.
Libnetwork implements CNM
• CNM has 3 main networking components: sandbox, endpoint,
and network
Kuryr translation please!
• Docker uses PUSH model to call a service for libnetwork
• Kuryr maps the 3 main CNM components to Neutron
networking constructs
• Ability to attach to existing Neutron networks with host
isolation (container cannot see host network)
libnetwork neutron
Network Network
Sandbox Subnet, Ports, netns
Endpoint Port
Networking services from Neutron, for containers!
Distributed Layer 2 Switching
Distributed Layer 3 Gateways
Floating IPs
Service Insertion
Layer 4 Distributed Stateful NAT
Distributed Firewall
VTEP Gateways
Distributed DHCP
Layer 4 Load Balancer-as-a-
Service (with Health Checks)
Policy without the need for IP tables
Distributed Metadata
TAP-as-a-Service
Launching a Container in Docker with Kuryr/MidoNet
{ It’s an enabler for existing, well-defined
networking plugins for containers
Kuryr delivers for CNM,
but what about CNI?
Kubernetes Presence in Container Orchestration
• Open sourced from production-grade, scalable technology used by
Borg & Omega at Google for over 10 years
• Explosive use over the last 12 months, including users like eBay and
Lithium Technologies
• Portable, extensible, self-healing
Impressive automated rollouts & rollbacks with one command
• Growing ecosystem supporting Kubernetes:
• CoreOS, RH OpenShift, Platform9, Weaveworks, Midokura!
Kubernetes Architecture
• Uses PULL model
architecture for config
changes
• Mean K8S emits events on
its API server
• etcd
• All persistent master state is
stored in an instance of etcd
• To date, runs as single instance;
HA clusters in future
• Provides a “great” way to store
configuration data reliably
• With watch support,
coordinating components can
be notified very quickly of
changes
Kubernetes Control Plane
• K8S API Server
• Serves up the Kubernetes API
• Intended to be a CRUD-y server, with separate components or in plug-ins
for logic implementation
• Processes REST operations, validates them, and updates the corresponding
objects in etcd
• Scheduler
• Binds unscheduled pods to nodes
• Pluggable, for multiple cluster schedulers and even user-provided
schedulers in the future
• K8S Controller Manager Server
• All other cluster-level functions are currently performed by the Controller
Manager
• E.g. Endpoints objects are created and updated by the endpoints
controller; and nodes are discovered, managed, and monitored by the
node controller.
• The replicationcontroller is a mechanism that is layered on top of the
simple pod API
• Planned to be a pluggable mechanism
Kubernetes Control Plane Continued
• kubelet
• Manages pods and their
containers, their images, their
volumes, etc
• kube-proxy
• Run on each node to provide
a simple network proxy and
load balancer
• Reflects services as defined in
the Kubernetes API on each
node and can do simple TCP
and UDP stream forwarding
(round robin) across a set of
backends
Kubernetes Worker Node
Kubernetes Networking Model
There are 4 distinct networking problems to solve:
1. Highly-coupled container-to-container
communications
2. Pod-to-Pod communications
3. Pod-to-Service communications
4. External-to-internal communications
Kubernetes Networking Options
Flannel provides an overlay to enable cross-host communication
- IP per POD
- VXLAN tunneling between hosts
- IPtables for NAT
- Multi-tenancy?
- Host per tenant?
- Cluster per tenant?
- How to share VMs and containers on the same network for the same tenant?
- Security Risk on docker bridge? Shared networking stack
MidoNet Integration with
Kubernetes using Kuryr
35
MidoNet: 6+ years of steady growth
Security at the edge
1. vPort1 initiates a packet flow through the virtual network
2. MN Agent fetches the virtual topology/state
3. MN simulates the packet through the virtual network
4. MN installs a flow in the kernel at the ingress host
5. Packet is sent in tunnel to egress host
Kubernetes Integration: How with Kuryr?
Kubernetes 1.2+
Two integration components:
CNI driver
• Standard container networking: preferred K8S network extension point
• Can serve rkt, appc, docker
• Uses Kuryr port binding library to bind local pod using metadata
Raven (Part of Kuryr project)
• Python 3
• AsyncIO
• Extensible API watcher
• Drives the K8S API to Neutron API translation
Kubernetes Integration: How with Kuryr+MidoNet?
Defaults:
kube-proxy: generates iptables rules which map portal_ips
such that the traffic gets to the local kube-proxy daemon. Does the
equivalent of a NAT to the actual pod address
flannel: default networking integration in CoreOS
Enhanced by:
Kuryr CNI driver: enables the host binding
Raven: process used to proxy K8S API to Neutron API
MidoNet agent: provides higher layer services to the pods
Kubernetes Integration: How with Kuryr?
Raven: used to proxy K8S API to Neutron API + IPAM
- focuses only on building the virtual network topology translated
from the events of the internal state changes of K8S through its API
server
Kuryr CNI driver: takes care of binding virtual ports to physical
interfaces on worker nodes for deployed pods
Kubernetes API Neutron API
Namespace Network
Cluster Subnet Subnet
Pod Port
Service LBaaS Pool LBaaS VIP (FIP)
Endpoint LBaaS Pool Member
Kubernetes Integration: How with Kuryr+MidoNet?
Raven: used to proxy K8S API to Neutron API
Kuryr CNI driver: takes care of binding virtual ports to physical
interfaces on worker nodes for deployed pods
Kubernetes Integration: How with Kuryr+MidoNet?
Raven: used to proxy K8S API to Neutron API
Kuryr CNI driver: takes care of binding virtual
ports to physical interfaces on worker nodes
for deployed pods
Completed integration components:
- CNI driver
- Raven
- Namespace Implementation (a mechanism to partition resources created
by users into a logically named group):
- - each namespace gets its own router
- - all pods driven by the RC should be on the same logical network
CoreOS support
- Containerized MidoNet services
Kubernetes Integration: Where are we now with MidoNet?
Where will Kuryr go next?
• Bring container and VM networking under one API
• Multi-tenancy
• Advanced networking services/map Network Policies
• QoS
• Adapt implementation to work with other COEs
• kuryr-mesos
• kuryr-cloudfoundry
• kuryr-openshift
• Magnum Support (containers in VMs) in OpenStack
Kuryr
 Project Launchpad
 https://launchpad.net/kuryr
 Project Git Repository
 https://github.com/openstack/kuryr
 Weekly IRC Meeting
 http://eavesdrop.openstack.org/#Kuryr_Projec
t_Meeting
 IRC
 #openstack-neutron @ Freenode
MidoNet
 Community Site
 www.midonet.org
 Project Git Repository
 https://github.com/midonet/midonet
 Try MidoNet with one command:
 $> curl -sL quickstart.midonet.org | sudo bash
 Join Slack
 slack.midonet.org
Get Involved!
{
Cynthia Thomas
Systems Engineer
@_techcet_
Thank you!

Contenu connexe

Tendances

Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationFawad Khaliq
 
Introduction to Openstack Network
Introduction to Openstack NetworkIntroduction to Openstack Network
Introduction to Openstack Networksalv_orlando
 
Brief Introduction To Kubernetes
Brief Introduction To KubernetesBrief Introduction To Kubernetes
Brief Introduction To KubernetesAvinash Ketkar
 
Global Persistence for Docker
Global Persistence for DockerGlobal Persistence for Docker
Global Persistence for DockerDocker, Inc.
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Cloud Native Day Tel Aviv
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetupdfilppi
 
Meetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroMeetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroLaurent Grangeau
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...Daniel Krook
 
Building Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and DockerBuilding Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and DockerSteve Watt
 
Navigating OpenStack Networking
Navigating OpenStack NetworkingNavigating OpenStack Networking
Navigating OpenStack NetworkingPLUMgrid
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
OpenStack Networking and Automation
OpenStack Networking and AutomationOpenStack Networking and Automation
OpenStack Networking and AutomationAdam Johnson
 
Next Generation Network Developer Skills
Next Generation Network Developer SkillsNext Generation Network Developer Skills
Next Generation Network Developer Skillsmestery
 
Optimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerOptimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerAnanth Padmanabhan
 
Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Chia-Chun Shih
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Opcito Technologies
 

Tendances (20)

Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron IntegrationNetworking For Nested Containers: Magnum, Kuryr, Neutron Integration
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
 
OpenStack Neutron behind the Scenes
OpenStack Neutron behind the ScenesOpenStack Neutron behind the Scenes
OpenStack Neutron behind the Scenes
 
Introduction to Openstack Network
Introduction to Openstack NetworkIntroduction to Openstack Network
Introduction to Openstack Network
 
Brief Introduction To Kubernetes
Brief Introduction To KubernetesBrief Introduction To Kubernetes
Brief Introduction To Kubernetes
 
Global Persistence for Docker
Global Persistence for DockerGlobal Persistence for Docker
Global Persistence for Docker
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetup
 
Meetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroMeetup Docker : From Zero to Hero
Meetup Docker : From Zero to Hero
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
 
Building Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and DockerBuilding Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and Docker
 
Navigating OpenStack Networking
Navigating OpenStack NetworkingNavigating OpenStack Networking
Navigating OpenStack Networking
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
OpenStack Networking and Automation
OpenStack Networking and AutomationOpenStack Networking and Automation
OpenStack Networking and Automation
 
Next Generation Network Developer Skills
Next Generation Network Developer SkillsNext Generation Network Developer Skills
Next Generation Network Developer Skills
 
Optimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerOptimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using docker
 
Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6
 

En vedette (18)

Introducción a la gestion
Introducción a la gestionIntroducción a la gestion
Introducción a la gestion
 
Trabalho de contextualização grupo adm
Trabalho de contextualização grupo admTrabalho de contextualização grupo adm
Trabalho de contextualização grupo adm
 
Strata 2016 - Network intelligence
Strata 2016 - Network intelligence Strata 2016 - Network intelligence
Strata 2016 - Network intelligence
 
Ambientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humanoAmbientes de aprendizaje para el desarrollo humano
Ambientes de aprendizaje para el desarrollo humano
 
ESBL.Pdf
ESBL.PdfESBL.Pdf
ESBL.Pdf
 
Charleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing SampleCharleston Battery Press Relaease - Writing Sample
Charleston Battery Press Relaease - Writing Sample
 
Branding on Clothes
Branding on ClothesBranding on Clothes
Branding on Clothes
 
Plan de redacción
Plan de redacciónPlan de redacción
Plan de redacción
 
LiveAgent's tour
LiveAgent's tourLiveAgent's tour
LiveAgent's tour
 
taller
taller taller
taller
 
Taller 2 noviembre 1
Taller 2 noviembre 1Taller 2 noviembre 1
Taller 2 noviembre 1
 
Enfermedades de trasmisión sexual
Enfermedades de trasmisión sexualEnfermedades de trasmisión sexual
Enfermedades de trasmisión sexual
 
Ubuntu manual
Ubuntu manualUbuntu manual
Ubuntu manual
 
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
Lafayette Elementary School: Lighting & Sound Meeting Presentation (June 7, 2...
 
20161103 Serverless Italy Meetup
20161103   Serverless Italy Meetup20161103   Serverless Italy Meetup
20161103 Serverless Italy Meetup
 
Espacios Comerciales
Espacios ComercialesEspacios Comerciales
Espacios Comerciales
 
Esp with thepic16f877
Esp with thepic16f877Esp with thepic16f877
Esp with thepic16f877
 
Itil v3 2010
Itil v3 2010Itil v3 2010
Itil v3 2010
 

Similaire à Secure Your Containers: What Network Admins Should Know When Moving Into Production

Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Prem Sankar Gopannan
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...DataWorks Summit
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsKublr
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Daniel Krook
 
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosContainer Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosMidoNet
 
Container Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack KuryrContainer Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack KuryrTaku Fukushima
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDStfalcon Meetups
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Brent Doncaster
 
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...NETWAYS
 
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...NETWAYS
 
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...Amazon Web Services
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
What's Running My Containers? A review of runtimes and standards.
What's Running My Containers? A review of runtimes and standards.What's Running My Containers? A review of runtimes and standards.
What's Running My Containers? A review of runtimes and standards.Phil Estes
 
Kubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationKubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationinovex GmbH
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 

Similaire à Secure Your Containers: What Network Admins Should Know When Moving Into Production (20)

Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Container world hybridnetworking_rev2
Container world hybridnetworking_rev2
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
 
Kubernetes integration with ODL
Kubernetes integration with ODLKubernetes integration with ODL
Kubernetes integration with ODL
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
 
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosContainer Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
 
Container Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack KuryrContainer Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack Kuryr
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21
 
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
 
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
 
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
 
Cont0519
Cont0519Cont0519
Cont0519
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
What's Running My Containers? A review of runtimes and standards.
What's Running My Containers? A review of runtimes and standards.What's Running My Containers? A review of runtimes and standards.
What's Running My Containers? A review of runtimes and standards.
 
Kubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationKubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestration
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 

Plus de Cynthia Thomas

KubeCon NA'22 Lightning Talk: Where did all my IPs go?
KubeCon NA'22 Lightning Talk: Where did all my IPs go?KubeCon NA'22 Lightning Talk: Where did all my IPs go?
KubeCon NA'22 Lightning Talk: Where did all my IPs go?Cynthia Thomas
 
Kernel advantages for Istio realized with Cilium
Kernel advantages for Istio realized with CiliumKernel advantages for Istio realized with Cilium
Kernel advantages for Istio realized with CiliumCynthia Thomas
 
Cilium:: Application-Aware Microservices via BPF
Cilium:: Application-Aware Microservices via BPFCilium:: Application-Aware Microservices via BPF
Cilium:: Application-Aware Microservices via BPFCynthia Thomas
 
Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cynthia Thomas
 
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPFCilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPFCynthia Thomas
 
Midokura @ OpenStack Seattle
Midokura @ OpenStack SeattleMidokura @ OpenStack Seattle
Midokura @ OpenStack SeattleCynthia Thomas
 
What's the deal with Neutron?
What's the deal with Neutron?What's the deal with Neutron?
What's the deal with Neutron?Cynthia Thomas
 
CloudKC: Evolution of Network Virtualization
CloudKC: Evolution of Network VirtualizationCloudKC: Evolution of Network Virtualization
CloudKC: Evolution of Network VirtualizationCynthia Thomas
 
From Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
From Nova-Network to Neutron and Beyond: A Look at OpenStack NetworkingFrom Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
From Nova-Network to Neutron and Beyond: A Look at OpenStack NetworkingCynthia Thomas
 

Plus de Cynthia Thomas (9)

KubeCon NA'22 Lightning Talk: Where did all my IPs go?
KubeCon NA'22 Lightning Talk: Where did all my IPs go?KubeCon NA'22 Lightning Talk: Where did all my IPs go?
KubeCon NA'22 Lightning Talk: Where did all my IPs go?
 
Kernel advantages for Istio realized with Cilium
Kernel advantages for Istio realized with CiliumKernel advantages for Istio realized with Cilium
Kernel advantages for Istio realized with Cilium
 
Cilium:: Application-Aware Microservices via BPF
Cilium:: Application-Aware Microservices via BPFCilium:: Application-Aware Microservices via BPF
Cilium:: Application-Aware Microservices via BPF
 
Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017
 
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPFCilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
 
Midokura @ OpenStack Seattle
Midokura @ OpenStack SeattleMidokura @ OpenStack Seattle
Midokura @ OpenStack Seattle
 
What's the deal with Neutron?
What's the deal with Neutron?What's the deal with Neutron?
What's the deal with Neutron?
 
CloudKC: Evolution of Network Virtualization
CloudKC: Evolution of Network VirtualizationCloudKC: Evolution of Network Virtualization
CloudKC: Evolution of Network Virtualization
 
From Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
From Nova-Network to Neutron and Beyond: A Look at OpenStack NetworkingFrom Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
From Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
 

Dernier

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Secure Your Containers: What Network Admins Should Know When Moving Into Production

  • 1. Secure Your Containers! What Network Admins Should Know When Moving Into Production Cynthia Thomas Systems Engineer @_techcet_
  • 2. { Why is networking an afterthought? Containers, Containers, Containers!
  • 3. Why Containers? • Much lighter weight and less overhead than virtual machines • Don’t need to copy entire OS or libraries – keep track of deltas • More efficient unit of work for cloud-native aps • Crucial tools for rapid-scale application development • Increase density on a physical host • Portable container image for moving/migrating resources
  • 4. Containers: Old and New • LXC: operating system-level virtualization through a virtual environment that has its own process and network space • 8 year old technology • Leverages Linux kernel cgroup • Also other namespaces for isolation • Focus on System Containers • Security: • Previously possible to run code on Host systems as root on guest system • LXC 1.0 brought “unprivileged containers” for HW accessibility restrictions • Ecosystem: • Vendor neutral, Evolving LXD, CGManager, LXCFS
  • 5. Containers: Old and New • Explosive growth: Docker created a de-facto standard image format and API for defining and interacting with containers • Docker: also operating system-level virtualization through a virtual environment • 3 year old technology • Application-centric API • Also leverages Linux kernel cgroups and kernal namespaces • Moved from LXC to libcontainer implementation • Portable deployment across machines • Brings image management and more seamless updates through versioning • Security: • Networking: linuxbridge, IPtables • Ecosystem: • CoreOS, Rancher, Kubernetes
  • 6. Container Orchestration Engines • Step forth the management of containers for application deployment! • Scale applications with clusters where the underlying deployment unit is a container • Examples include Docker Swarm, Kubernetes, Apache Mesos
  • 7. Today’s COEs have vulnerabilities
  • 8. What’s the problem? Why are containers insecure? • They weren’t designed with full isolation like VMs • Not everything in Linux is namespaced • What do they do to the network?
  • 9. COEs help container orchestration! …but what about networking? • Scaling Issues for ad-hoc security implementation with Security/Policy complexity • Which networking model to choose? CNM? CNI? • Why is network security always seemingly considered last?
  • 10. { Your Network Security team! And you should too. Who’s going to care?
  • 11. Containers add network complexity!!! • More components = more endpoints • Network Scaling Issues • Security/Policy complexity
  • 12. Perimeter Security approach is not enough • Legacy architectures tended to put higher layer services like Security and FWs at the core • Perimeter protection is useful for north-south flows, but what about east-west? • More = better? How to manage more pinch points?
  • 13. #ThrowbackThursday What did OpenStack do? • Started in 2010 as an open source community for cloud compute • Gained a huge following and became production ready • Enabled collaboration amongst engineers for technology advancement
  • 14. #ThrowbackThursday Neutron came late in the game! • Took 3 years before dedicated project formed • Neutron enabled third party plugin solutions • Formed advanced networking framework via community
  • 15. What is Neutron? • Production-grade open framework for Networking:  Multi-tenancy  Scalable, fault-tolerant devices (or device- agnostic network services).  L2 isolation  L3 routing isolation • VPC • Like VRF (virtual routing and fwd-ing)  Scalable Gateways  Scalable control plane • ARP, DHCP, ICMP  Floating/Elastic Ips  Decoupled from Physical Network  Stateful NAT • Port masquerading • DNAT  ACLs  Stateful (L4) Firewalls • Security Groups  Load Balancing with health checks  Single Pane of Glass (API, CLI, GUI)  Integration with COEs & management platforms • Docker Swarm, K8S • OpenStack, CloudStack • vSphere, RHEV, System Center
  • 17. { Leverage Neutron Kuryr Can Deliver Networking to Containers
  • 18. { Bridging the container networking framework with OpenStack network abstractions The Kuryr Mission
  • 19. What is Kuryr? Kuryr has become a collection of projects and repositories: - kuryr-lib: common libraries (neutron-client, keystone-client) - kuryr-libnetwork: docker networking plugin - kuryr-kubernetes: k8s api watcher and CNI driver - fuxi: docker cinder driver
  • 20. Project Kuryr Contributions As of Oct. 18th, 2016: http://stackalytics.com/?release=all&module=kuryr- group&metric=commits
  • 21. Some previous* networking options with Docker STOP IPtables maybe? IPtables maybe? Done with Neutron? Tell me more, please! • libnetwork: • Null (with nothing in its networking namespace) • Bridge • Overlay • Remote
  • 22. Kuryr: Docker (1.9+)’s remote driver for Neutron networking Kuryr implements a libnetwork remote network driver and maps its calls to OpenStack Neutron. It translates between libnetwork's Container Network Model (CNM) and Neutron's networking model. Kuryr also acts as a libnetwork IPAM driver.
  • 23. Libnetwork implements CNM • CNM has 3 main networking components: sandbox, endpoint, and network
  • 24. Kuryr translation please! • Docker uses PUSH model to call a service for libnetwork • Kuryr maps the 3 main CNM components to Neutron networking constructs • Ability to attach to existing Neutron networks with host isolation (container cannot see host network) libnetwork neutron Network Network Sandbox Subnet, Ports, netns Endpoint Port
  • 25. Networking services from Neutron, for containers! Distributed Layer 2 Switching Distributed Layer 3 Gateways Floating IPs Service Insertion Layer 4 Distributed Stateful NAT Distributed Firewall VTEP Gateways Distributed DHCP Layer 4 Load Balancer-as-a- Service (with Health Checks) Policy without the need for IP tables Distributed Metadata TAP-as-a-Service
  • 26. Launching a Container in Docker with Kuryr/MidoNet
  • 27. { It’s an enabler for existing, well-defined networking plugins for containers Kuryr delivers for CNM, but what about CNI?
  • 28. Kubernetes Presence in Container Orchestration • Open sourced from production-grade, scalable technology used by Borg & Omega at Google for over 10 years • Explosive use over the last 12 months, including users like eBay and Lithium Technologies • Portable, extensible, self-healing Impressive automated rollouts & rollbacks with one command • Growing ecosystem supporting Kubernetes: • CoreOS, RH OpenShift, Platform9, Weaveworks, Midokura!
  • 29. Kubernetes Architecture • Uses PULL model architecture for config changes • Mean K8S emits events on its API server
  • 30. • etcd • All persistent master state is stored in an instance of etcd • To date, runs as single instance; HA clusters in future • Provides a “great” way to store configuration data reliably • With watch support, coordinating components can be notified very quickly of changes Kubernetes Control Plane
  • 31. • K8S API Server • Serves up the Kubernetes API • Intended to be a CRUD-y server, with separate components or in plug-ins for logic implementation • Processes REST operations, validates them, and updates the corresponding objects in etcd • Scheduler • Binds unscheduled pods to nodes • Pluggable, for multiple cluster schedulers and even user-provided schedulers in the future • K8S Controller Manager Server • All other cluster-level functions are currently performed by the Controller Manager • E.g. Endpoints objects are created and updated by the endpoints controller; and nodes are discovered, managed, and monitored by the node controller. • The replicationcontroller is a mechanism that is layered on top of the simple pod API • Planned to be a pluggable mechanism Kubernetes Control Plane Continued
  • 32. • kubelet • Manages pods and their containers, their images, their volumes, etc • kube-proxy • Run on each node to provide a simple network proxy and load balancer • Reflects services as defined in the Kubernetes API on each node and can do simple TCP and UDP stream forwarding (round robin) across a set of backends Kubernetes Worker Node
  • 33. Kubernetes Networking Model There are 4 distinct networking problems to solve: 1. Highly-coupled container-to-container communications 2. Pod-to-Pod communications 3. Pod-to-Service communications 4. External-to-internal communications
  • 34. Kubernetes Networking Options Flannel provides an overlay to enable cross-host communication - IP per POD - VXLAN tunneling between hosts - IPtables for NAT - Multi-tenancy? - Host per tenant? - Cluster per tenant? - How to share VMs and containers on the same network for the same tenant? - Security Risk on docker bridge? Shared networking stack
  • 36. MidoNet: 6+ years of steady growth
  • 37. Security at the edge 1. vPort1 initiates a packet flow through the virtual network 2. MN Agent fetches the virtual topology/state 3. MN simulates the packet through the virtual network 4. MN installs a flow in the kernel at the ingress host 5. Packet is sent in tunnel to egress host
  • 38. Kubernetes Integration: How with Kuryr? Kubernetes 1.2+ Two integration components: CNI driver • Standard container networking: preferred K8S network extension point • Can serve rkt, appc, docker • Uses Kuryr port binding library to bind local pod using metadata Raven (Part of Kuryr project) • Python 3 • AsyncIO • Extensible API watcher • Drives the K8S API to Neutron API translation
  • 39. Kubernetes Integration: How with Kuryr+MidoNet? Defaults: kube-proxy: generates iptables rules which map portal_ips such that the traffic gets to the local kube-proxy daemon. Does the equivalent of a NAT to the actual pod address flannel: default networking integration in CoreOS Enhanced by: Kuryr CNI driver: enables the host binding Raven: process used to proxy K8S API to Neutron API MidoNet agent: provides higher layer services to the pods
  • 40. Kubernetes Integration: How with Kuryr? Raven: used to proxy K8S API to Neutron API + IPAM - focuses only on building the virtual network topology translated from the events of the internal state changes of K8S through its API server Kuryr CNI driver: takes care of binding virtual ports to physical interfaces on worker nodes for deployed pods Kubernetes API Neutron API Namespace Network Cluster Subnet Subnet Pod Port Service LBaaS Pool LBaaS VIP (FIP) Endpoint LBaaS Pool Member
  • 41. Kubernetes Integration: How with Kuryr+MidoNet? Raven: used to proxy K8S API to Neutron API Kuryr CNI driver: takes care of binding virtual ports to physical interfaces on worker nodes for deployed pods
  • 42. Kubernetes Integration: How with Kuryr+MidoNet? Raven: used to proxy K8S API to Neutron API Kuryr CNI driver: takes care of binding virtual ports to physical interfaces on worker nodes for deployed pods
  • 43. Completed integration components: - CNI driver - Raven - Namespace Implementation (a mechanism to partition resources created by users into a logically named group): - - each namespace gets its own router - - all pods driven by the RC should be on the same logical network CoreOS support - Containerized MidoNet services Kubernetes Integration: Where are we now with MidoNet?
  • 44. Where will Kuryr go next? • Bring container and VM networking under one API • Multi-tenancy • Advanced networking services/map Network Policies • QoS • Adapt implementation to work with other COEs • kuryr-mesos • kuryr-cloudfoundry • kuryr-openshift • Magnum Support (containers in VMs) in OpenStack
  • 45. Kuryr  Project Launchpad  https://launchpad.net/kuryr  Project Git Repository  https://github.com/openstack/kuryr  Weekly IRC Meeting  http://eavesdrop.openstack.org/#Kuryr_Projec t_Meeting  IRC  #openstack-neutron @ Freenode MidoNet  Community Site  www.midonet.org  Project Git Repository  https://github.com/midonet/midonet  Try MidoNet with one command:  $> curl -sL quickstart.midonet.org | sudo bash  Join Slack  slack.midonet.org Get Involved!

Notes de l'éditeur

  1. Purpose Examples of existing ones What are COE networking models? Docker: CNM K8S & Mesos: CNI Maturity? Re-inventing wheel, including the political battles, but that’s the fun that open source brings - Otto’s Magnum webinar compares COEs: (minute 16:30??) http://blog.midokura.com/2016/05/project-magnum-introduction/ Talk about which are good for what If 10K nodes, use …
  2. Reference: https://github.com/kubernetes/kubernetes/blob/master/docs/design/architecture.md Service endpoints are currently found via DNS or through environment variables (both Docker-links-compatible and Kubernetes {FOO}_SERVICE_HOST and {FOO}_SERVICE_PORT variables are supported). These variables resolve to ports managed by the service proxy. The kubelet ships with built-in support for cAdvisor, which collects, aggregates, processes and exports information about running containers on a given system. cAdvisor includes a built-in web interface available on port 4194