Dan Williams Networking Services, Red Hat

Similar documents
Multiple Networks and Isolation in Kubernetes. Haibin Michael Xie / Principal Architect Huawei

Wolfram Richter Red Hat. OpenShift Container Netzwerk aus Sicht der Workload

OPENSHIFT FOR OPERATIONS. Jamie Cloud Guy - US Public Sector at Red Hat

Project Calico v3.2. Overview. Architecture and Key Components. Project Calico provides network security for containers and virtual machine workloads.

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Secure Kubernetes Container Workloads

Project Calico v3.1. Overview. Architecture and Key Components

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Cloud Networking (VITMMA02) Network Virtualization: Overlay Networks OpenStack Neutron Networking

Kubernetes networking in the telco space

Simplify Container Networking With ican. Huawei Cloud Network Lab

CONTAINERS AND MICROSERVICES WITH CONTRAIL

Fix VxLAN Issue in SFC Integration by Using Eth+NSH and VxLAN-gpe+NSH Hybrid Mode Yi Yang, Intel

OpenStack and OVN What s New with OVS 2.7 OpenStack Summit -- Boston 2017

Kubernetes - Networking. Konstantinos Tsakalozos

Overview of Container Management

Red Hat OpenStack Platform 13

Linux Clusters Institute: OpenStack Neutron

TEN LAYERS OF CONTAINER SECURITY

Implementing Container Application Platforms with Cisco ACI

TEN LAYERS OF CONTAINER SECURITY

Infoblox IPAM Driver for Kubernetes User's Guide

Dockercon 2017 Networking Workshop

RED HAT OPENSHIFT CONTAINER PLATFORM REFERENCE ARCHITECTURE FOR PCI DSS V3.2.1

Infoblox IPAM Driver for Kubernetes. Page 1

Maximizing Network Throughput for Container Based Storage David Borman Quantum

Virtual Infrastructure: VMs and Containers

NSX-T Container Plug-in for OpenShift - Installation and Administration Guide. Modified on 15 SEP 2017 VMware NSX-T 2.0

The speed of containers, the security of VMs. KataContainers.io

Neutron networking with RHEL OpenStack Platform. Nir Yechiel Senior Technical Product Manager, OpenStack Red Hat

What s New in Red Hat OpenShift Container Platform 3.4. Torben Jäger Red Hat Solution Architect

Kubernetes Container Networking with NSX-T Data Center Deep Dive

Red Hat OpenShift Roadmap Q4 CY16 and H1 CY17 Releases. Lutz Lange Solution

Red Hat OpenStack Platform 10 Red Hat OpenDaylight Product Guide

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

2016 Mesosphere, Inc. All Rights Reserved.

Code: Slides:

Kubernetes: Twelve KeyFeatures

Container Orchestration on Amazon Web Services. Arun

Buenos Aires 31 de Octubre de 2018

Neutron: peeking behind the curtains

OpenShift Dedicated 3 Release Notes

Introduction to Neutron. Network as a Service

FloatingIP Enhancement For Public Cloud Infrastructure

Infoblox Kubernetes1.0.0 IPAM Plugin

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Project Kuryr. Antoni Segura Puimedon (apuimedo) Gal Sagie (gsagie)

Datacenter Network Solutions Group

Life of a Packet. KubeCon Europe Michael Rubin TL/TLM in GKE/Kubernetes github.com/matchstick. logo. Google Cloud Platform

Kubernetes and the CNI: Where we are and What s Next Casey Callendrello RedHat / CoreOS

K8s(Kubernetes) and SDN for Multi-access Edge Computing deployment

Docker Networking: From One to Many. Don Mills

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

Table of Contents HOL NET

The speed of containers, the security of VMs

Cisco Virtual Update Container networking. Hans Donnerborg, Lars Granberg, Maj 2018

agenda PAE Docker Docker PAE

Question: 2 Kubernetes changed the name of cluster members to "Nodes." What were they called before that? Choose the correct answer:

OpenStack Magnum Hands-on. By Saulius Alisauskas and Bryan Havenstein

FD.io VPP & Ligato Use Cases. Contiv-VPP CNI plugin for Kubernetes IPSEC VPN gateway

Running RHV integrated with Cisco ACI. JuanLage Principal Engineer - Cisco May 2018

Kubernetes and the CNI: Where we are and What s Next Casey Callendrello RedHat / CoreOS

Docker Networking Deep Dive online meetup

How to build scalable, reliable and stable Kubernetes cluster atop OpenStack.

Container Networking and Openstack. Fernando Sanchez Fawad Khaliq March, 2016

Using Network Virtualization in DevOps environments Yves Fauser, 22. March 2016 (Technical Product Manager VMware NSBU)

Container mechanics in Linux and rkt FOSDEM 2016

Important DevOps Technologies (3+2+3days) for Deployment

An Introduction to Kubernetes

VMWARE SOLUTIONS AND THE DATACENTER. Fredric Linder

Kubernetes: What s New

Kuber-what?! Learn about Kubernetes

Network Mul,tenancy in Xen- based Clouds. Chiradeep Vi;al CloudStack Commi;er Citrix Sep

Evaluation of virtualization and traffic filtering methods for container networks

Virtualization Design

VMware Integrated OpenStack with Kubernetes Getting Started Guide. VMware Integrated OpenStack 4.0

Simplify Networking for Containers 叶磊曹水 华为中央软件院云网络实验室

Kubernetes 1.8 and Beyond

How Container Runtimes matter in Kubernetes?

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

Kubernetes on Azure. Daniel Neumann Technology Solutions Professional Microsoft. Build, run and monitor your container applications

Open vswitch in Neutron

Hacking and Hardening Kubernetes

Networking Approaches in. a Container World. Flavio Castelli Engineering Manager

Agenda Introduce NSX-T: Architecture Switching Routing Firewall Disclaimer This presentation may contain product features that are currently under dev

ASP.NET Core & Docker

A REFERENCE ARCHITECTURE FOR DEPLOYING WSO2 MIDDLEWARE ON KUBERNETES

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Singapore. Service Proxy, Container Networking & K8s. Acknowledgement: Pierre Pfister, Jerome John DiGiglio, Ray

Kata Containers The way to run virtualized containers. Sebastien Boeuf, Linux Software Engineer Intel Corporation

Getting Started with VMware Integrated OpenStack with Kubernetes. VMware Integrated OpenStack 5.1

Quantum, network services for Openstack. Salvatore Orlando Openstack Quantum core developer

$ wget V SOLUTIONS.tar.bz2 \ --user=lftraining --password=penguin2014

Dataplane Networking journey in Containers

Building NFV Solutions with OpenStack and Cisco ACI

VMware Integrated OpenStack with Kubernetes Getting Started Guide. VMware Integrated OpenStack 4.1

Kubernetes 101. Doug Davis, STSM September, 2017

Scaling Jenkins with Docker and Kubernetes Carlos

Project Kuryr. Here comes advanced services for containers networking. Antoni Segura

Open vswitch DPDK Acceleration Using HW Classification

Transcription:

Networking Containers with Kubernetes and OpenShift Dan Williams Networking Services, Red Hat

Kubernetes Components Web UI Pod apiserver etcd Container 1 Container 2 scheduler controller Command-line interface $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/googlecloudplatform/ku bernetes. Usage: kubectl [flags] kubectl [command] Kubernetes Master Kubernetes Node

Kubernetes Networking Out-of-the-Box Web UI Pod apiserver etcd Container 1 Container 2 scheduler controller Command-line interface $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/googlecloudplatform/ku bernetes. Usage: kubectl [flags] kubectl [command] Kubernetes Master Kubernetes Node One lonely networking integration point

How can we improve Kubernetes networking? Enhance the existing network plugin architecture Add multi-tenancy support through network objects Implement a flexible, fine-grained network security policy Make sure UI understands these concepts Make sure they are easy for administrators and developers to use

Kubernetes Networking Out-of-the-Box Web UI Pod apiserver etcd Container 1 Container 2 scheduler controller Command-line interface $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/googlecloudplatform/ku bernetes. Usage: kubectl [flags] kubectl [command] Kubernetes Master Kubernetes Node One lonely networking integration point

Improve Kubernetes: Plugin Architecture Web UI Pod apiserver etcd Container 1 Container 2 scheduler controller Command-line interface $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/googlecloudplatform/ku bernetes. Usage: kubectl [flags] kubectl [command] Kubernetes Master Kubernetes Node Everyone gets an integration point!!!!

Improve Kubernetes: Plugin Architecture Two existing network plugin APIs exec Container Network Interface (CNI) Only deals with pod setup/teardown Consolidate around one plugin API Add hooks at multiple points in the stack master nodes pod setup/teardown user interfaces Ensure the needs of multiple networking providers are met

Improve Kubernetes Networking: Multi-tenancy and networks Kubernetes is currently 100% network-oblivious We must add networks as first-class objects Allow external entities to provide network data and events to Kubernetes Allow to use multiple networks (distinct from multiple subnets) Flexible addressing methods overlapping IPs between networks subnet-per-node Service handling and proxies

Improve Kubernetes Networking: Network Security Policy Security policy enforces which pods can connect to which networks Pod definitions cannot control network associations Cluster administrator must have control over policy and pod network mappings Must allow pods to map to multiple networks Must allow cross-talk between networks if configured

Kubernetes + PaaS = OpenShift OpenShift is an open-source project that provides Platform-as-a-Service on top of Kubernetes OpenShift wraps Kubernetes and adds: The concept of a complete application Building and deploying docker images from source code (STI) Application lifecycle management (CI, staging, production,...) Focus on user or administrator experience Out-of-the-box Open vswitch-based multi-tenant networking Enhanced, flexible access control Secure cluster communication by default

OpenShift Networking with Open vswitch openshift-master Pod (Tenant A) Pod (Tenant B) Container 1 Container 2 Container 3 Container 4 etcd eth0 10.0.0.6 eth0 10.0.0.19 Master openshift-node OVS Bridge OpenFlow rules enforce pod isolation Command-line interface $ oc Developer and Administrator Client This client exposes commands for managing your applications, as well as lower level tools to interact with each component of your system. Node Host NIC

OpenShift Networking: The Master openshift-master etcd OpenShift projects are mapped to tenant networks oc new-project TenantA oc create -f <pod template> oc new-project TenantB oc create -f <pod template> Master Tenant networks can be isolated from each other, joined, or admin Master keeps mapping of projects/networks to Virtual Network ID Administration of networks via the openshift-client ('oc') command Command-line interface $ oc Developer and Administrator Client This client exposes commands for managing your applications, as well as lower level tools to interact with each component of your system.

OpenShift Networking: The Node openshift-node updates OVS bridge flows for: node changes service changes network namespace changes Provides a Kubernetes CNI plugin for: pod setup and teardown network namespace changes, joins, and splits Each node allocated a node subnet from the cluster subnet Container 1 Pod (Tenant A) eth0 10.0.0.6 openshift-node Container 2 Container 3 Pod (Tenant B) eth0 10.0.0.19 Container 4 OVS Bridge OpenFlow rules enforce pod isolation IPAM provided by Docker using node subnet All pods on a node share common subnet, with isolation enforced by OVS flow rules Isolation between nodes is enforced through Virtual Network IDs (derived from VXLAN tunnel ID) which are checked on each node External network access through NAT-ed tun interface Node Host NIC

OpenShift Networking: Node Architecture Pod (Tenant A) Pod (Tenant B) Container 1 Container 2 Container 3 Container 4 veth veth veth veth OVS Bridge VXLAN (to other nodes) tun0 (NATed external access) veth veth Linux Bridge (docker and IPAM) Node Host NIC

OpenShift Networking: OVS Flows All traffic enters OVS bridge here: cookie=0x0, table=1, in_port=1 actions=goto_table:2 [vxlan0] cookie=0x0, table=1, in_port=2 actions=goto_table:5 [tun0] cookie=0x0, table=1, actions=goto_table:3 VXLAN ingress from other nodes: cookie=0x0, table=2, priority=100,ip,nw_dst=10.1.0.0/24 actions=move:nxm_nx_tun_id[0..31]->nxm_nx_reg0[],goto_table:6 cookie=0x0, table=2, tun_id=0 actions=goto_table:5 ['admin' networks] ingress from pods: cookie=0x3, table=3, priority=100,ip,in_port=3,nw_src=10.1.0.2 actions=load:0xd->nxm_nx_reg0[],goto_table:4 [VNI tagging] cookie=0x4, table=3, priority=100,ip,in_port=4,nw_src=10.1.0.3 actions=load:0xe->nxm_nx_reg0[],goto_table:4 [VNI tagging] services handling rules: cookie=0x0, table=4, priority=200,tcp,reg0=0xa,nw_dst=172.30.0.1,tp_dst=443 actions=output:2 [service rule] cookie=0x0, table=4, priority=100,ip,nw_dst=172.30.0.0/16 actions=drop cookie=0x0, table=4, priority=0 actions=goto_table:5 general routing: cookie=0x0, table=5, priority=200,ip,nw_dst=10.1.0.1 actions=output:2 [traffic to external networks] cookie=0x0, table=5, priority=150,ip,nw_dst=10.1.0.0/24 actions=goto_table:6 [traffic to pods on the node] cookie=0x0, table=5, priority=100,ip,nw_dst=10.1.0.0/16 actions=goto_table:7 [cluster network egress] cookie=0x0, table=5, priority=0,ip actions=output:2 egress to pods: cookie=0x0, table=6, priority=200,ip,reg0=0 actions=goto_table:8 ['admin' networks] cookie=0x4, table=6, priority=100,ip,reg0=0xe,nw_dst=10.1.0.3 actions=output:4 [pod filter rule] cookie=0x3, table=6, priority=100,ip,reg0=0xd,nw_dst=10.1.0.2 actions=output:3 [pod filter rule] egress to nodes via VXLAN: cookie=0xaf50204,table=7 priority=100,ip,nw_dst=10.1.1.0/24 actions=move:nxm_nx_reg0[]->nxm_nx_tun_id[0..31],set_field:10.245.2.4->tun_dst,output:1

How to Make OpenShift Networking Better Move OpenShift networking to external projects Drive improvements to Kubernetes network plugin API and multi-network support Contribute multi-network and other improvements to flannel Develop more community around simple OVS-based container networking Continue improving tunnel performance VXLAN and Geneve offloading and optimization Use OVS internal ports across kernel network namespaces Simplifies container network interface management Use OVS conntrack and NAT instead of kernel iptables Move IPAM from docker to CNI plugin Better control and flexibility over addressing

Questions?