SlideShare a Scribd company logo
Kuryr-Kubernetes
Adding Pods to your Datacenter Networking
Irena Berezovsky @irenab
Antoni Segura Puimedon @celebdor
Kuryr-Kubernetes Project motivation
● Hard to connect VMs, bare metal and nested containers
○ No unified networking infrastructure
● Overlay
2
for Pods running in VMs
○ Performance, latency, SLA, management penalties
● Need for a smooth transition to the Cloud Native
Applications
○ Ability to transition workloads to microservices at your own pace
○ VMs and Pods sharing networking infrastructure
● Bare Metal OpenStack Storage support with
Fuxi-Kubernetes
Kuryr-Kubernetes Project Mission
● Neutron, unified, community sourced networking
for Pods & VMs
● OpenStack vendor support experience in the
Container space
● Get Neutron users faster into container workloads
○ VMs and Pods on the same Neutron network
○ Enable both L2 and L3 connectivity between OS VMs and
K8s Pods
● Easier transition to microservices
○ Connect to VM layer in the same infrastructure
Bare Metal Use
Case
● Centralized Kuryr
Controller
● Kuryr Controller maps
○ K8s Pods into
Neutron ports
○ K8s Services into
Neutron Load
Balancers
● Kuryr CNI on each
Worker node performs
Pod binding
Pod in VM Use
Case
● Security
● Easier node allocation
● Single overlay
● VM and Pods as
targetable network
resources
● Can use either Neutron
trunk ports or macvlan
based VM port
allocation
Mixed Use Case
● Connect to existing
services in VMs
● Legacy applications
alongside
microservices
● VM NFVs
● Use existing cloud for
Kubernetes workloads
Supported functionality
● Pods networking
○ Kubernetes native networking
○ Pods as Neutron ports on the cluster
Neutron network
○ Single tenant
○ Full connectivity enabled by default
● Kubernetes ClusterIP Services
○ Implemented by Neutron LBaaSv2
● Bare Metal and Pod in VM support
Kuryr-Kubernetes Architecture
Kubernetes
Services
● Cluster IP translates to
Neutron VIP
● Service endpoints
translate to Pool
Members
● Uses Neutron Lbaas v2
● Planned addition of
Octavia driver
Kuryr kubernetes: the seamless path to adding pods to your datacenter networking
Kuryr Controller
● Secure connection to the Neutron API Server
○ Keystone as Authorization service
● Watches Kubernetes API resources with a service account
● Stevedore Plugin based Network resources translation
○ Handlers: Receive Kubernetes resource events and patch them
○ Drivers: Used by handlers to allocate Neutron resources, allowing multiple
implementations and vendors.
● Os-vif for interface plugging
Kuryr Controller ServiceAccount
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kuryrctl
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: kuryrctl-global
subjects:
- kind: User
name: kuryrctl
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: kuryrctl
apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion:
rbac.authorization.k8s.io/v1beta1
metadata:
name: kuryrctl
rules: - apiGroups:
- ""
verbs:
- get
- list
- watch
resources:
- deployments
- endpoints
- ingress
- nodes
- pods
- policies
- services
- apiGroups:
- ""
verbs:
- update
- patch
resources:
- endpoints
- ingress
- pods
- policies
- nodes
- services
- services/status
Kuryr CNI Driver
● Kuryr CNI driver only
communicates with
Kubernetes API
○ Kubelet already has
connection to K8s API
○ Performs local binding
of the neutron port
● Supports CNI versioned
output (0.3.0)
● Watches Pod resources
for Controller-driven vif
annotations
"annotations": {
"openstack.org/kuryr-vif": {
"active": true,
"address": "fa:16:3e:6c:1f:ff",
"bridge_name": "br-int",
"has_traffic_filtering": true,
"id": "ba8f8d4b-1dfb-4aaf-8ab2-80c25711da3f",
"network": {
"bridge": "br-int",
"id": "a10c5bf4-99b2-4b0d-82b1-2a2639dda4de",
"label": "private",
"mtu": 1450,
"multi_host": false,
"should_provide_bridge": false,
"should_provide_vlan": false,
"subnets": {[{
"cidr": "10.0.0.0/26",
"dns": [],
"gateway": "10.0.0.1",
"ips": [{
"address": "10.0.0.8"}],
"routes": []
}]}
},
"plugin": "ovs",
"port_profile": {
"interface_id": "ba8f8d4b-1dfb-4aaf-8ab2-80c25711da3f"
},
"preserve_on_delete": false,
"vif_name": "tapba8f8d4b-1d"
}
}
Kuryr CNI ServiceAccount
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kuryrcni
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: kuryrcni-global
subjects:
- kind: User
name: kuryrcni
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: kuryrcni
apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion:
rbac.authorization.k8s.io/v1beta1
metadata:
# "namespace" omitted since ClusterRoles
are not namespaced
name: kuryrcni
rules:
- apiGroups:
- ""
verbs:
- get
- list
- watch
resources:
- pods
Controller - CNI baremetal pod creation
Trunk ports - Neutron extension
Trunk ports - Neutron extension
Controller - CNI pod-in-VM creation
Cluster service creation flow
Scaling Kuryr
● Generic resource
Pooling
○ VIF
○ Load Balancers*
● Stevedore pluggability
to choose pooling
behavior
● Pre-allocates Neutron
resources in batch
operations
● Burst tolerant
Demo: Guestbook
● 2-tier
● 3 services
● PHP frontend, Redis backend
● Features
○ LoadBalancer Kubernetes Service Type
○ Resource Management
○ Ingress support
○ Policy support
○ Multi-Tenancy, Multiple Networks support
○ Management CLI
● Improvements
○ CNI split into exec and daemon
○ Handler/Driver Profiles
○ Active-Passive HA
What’s Next
Join us
● Project launchpad
○ https://launchpad.net/kuryr-kubernetes
● Repository
○ https://github.com/openstack/kuryr-kubernetes
● IRC
○ Weekly meeting #openstack-meeting-4 Mondays 14:00 UTC
○ #openstack-kuryr at Freenode
● Mailing list
○ [kuryr] in openstack-dev@lists.openstack.org
Resources
● Documentation
○ https://docs.openstack.org/developer/kuryr-kubernetes
● Getting started
○ https://ltomasbo.wordpress.com/2017/01/29/side-by-side-and-nested-kubernetes-and-op
enstack-deployment-with-kuryr/
Demo: services
Demo recording

More Related Content

PDF
Kuryr + open shift
PDF
OpenShift on OpenStack with Kuryr
PDF
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
PDF
OpenStack Boston Summit: Kuryr project updates
PPTX
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
PDF
Project kuryr returns: Docker delivered, Kubernetes Next
PDF
Introduction to MidoNet
PDF
Kubernetes Networking - Giragadurai Vallirajan
Kuryr + open shift
OpenShift on OpenStack with Kuryr
Kuryr & Fuxi: OpenStack networking and storage for Docker Swarm containers
OpenStack Boston Summit: Kuryr project updates
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Project kuryr returns: Docker delivered, Kubernetes Next
Introduction to MidoNet
Kubernetes Networking - Giragadurai Vallirajan

What's hot (20)

PPTX
Introduction to OpenStack Cinder
PDF
Container Orchestration Integration: OpenStack Kuryr
PPTX
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
PPTX
Kubernetes networks
PDF
Kubernetes networking & Security
PDF
Kubernetes Networking
PDF
Container Networking Deep Dive
PDF
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
PDF
Using OpenContrail with Kubernetes
PPTX
Docker Networking in OpenStack: What you need to know now
PDF
Deploying OpenDaylight and OpenStack at Ease
PDF
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
PDF
Deep dive into highly available open stack architecture openstack summit va...
PDF
Guts & OpenStack migration
PDF
OpenDaylight OpenStack Integration
PDF
VietOpenStack meetup 7th High Performance VM
PDF
OpenStack Tokyo Summit Keynote Slides
PDF
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
PDF
Keystone at openstack multi sites
Introduction to OpenStack Cinder
Container Orchestration Integration: OpenStack Kuryr
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
Kubernetes networks
Kubernetes networking & Security
Kubernetes Networking
Container Networking Deep Dive
Networking For Nested Containers: Magnum, Kuryr, Neutron Integration
Using OpenContrail with Kubernetes
Docker Networking in OpenStack: What you need to know now
Deploying OpenDaylight and OpenStack at Ease
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
Deep dive into highly available open stack architecture openstack summit va...
Guts & OpenStack migration
OpenDaylight OpenStack Integration
VietOpenStack meetup 7th High Performance VM
OpenStack Tokyo Summit Keynote Slides
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
Keystone at openstack multi sites
Ad

Similar to Kuryr kubernetes: the seamless path to adding pods to your datacenter networking (20)

PPTX
COE Integration - OPNFV
PDF
Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...
PPTX
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
PPTX
Container world hybridnetworking_rev2
PPTX
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
PPTX
Open stackaustinmeetupsept21
PDF
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
PPTX
Comparison of existing cni plugins for kubernetes
PDF
Overview of OpenDaylight Container Orchestration Engine Integration
PDF
Container network security
PDF
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
PDF
Introduction to Kubernetes Workshop
PDF
Contrail integrated with Kubernetes and Openstack
PDF
"One network to rule them all" - OpenStack Summit Austin 2016
PPTX
BRKDCT-2445 Agile OpenStack Networking with Cisco Solutions - Cisco Live! US ...
PPTX
Kubernetes on open stack
PDF
Netforce: extending neutron to support routed networks at scale in ebay
PDF
Agile OpenStack Networking with Cisco Solutions
PPTX
PSOCLD-1006 Cisco Cloud Architectures on OpenStack - Cisco Live! US 2015 San ...
PDF
Container Network Interface: Network Plugins for Kubernetes and beyond
COE Integration - OPNFV
Tech Talk by Gal Sagie: Kuryr - Connecting containers networking to OpenStack...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
Container world hybridnetworking_rev2
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Open stackaustinmeetupsept21
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
Comparison of existing cni plugins for kubernetes
Overview of OpenDaylight Container Orchestration Engine Integration
Container network security
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Introduction to Kubernetes Workshop
Contrail integrated with Kubernetes and Openstack
"One network to rule them all" - OpenStack Summit Austin 2016
BRKDCT-2445 Agile OpenStack Networking with Cisco Solutions - Cisco Live! US ...
Kubernetes on open stack
Netforce: extending neutron to support routed networks at scale in ebay
Agile OpenStack Networking with Cisco Solutions
PSOCLD-1006 Cisco Cloud Architectures on OpenStack - Cisco Live! US 2015 San ...
Container Network Interface: Network Plugins for Kubernetes and beyond
Ad

More from Antoni Segura Puimedon (20)

PDF
Revista juny 2013
PDF
Revista maig 2013
PDF
Revista el bloc Novembre 2011
PDF
Programa Bloc Olesà 2011
PDF
Revista de final de campanya
PDF
Revista Casc Antic
PDF
Revista de Sant Bernat
PDF
Revista Collet de Sant Joan
PDF
Revista La Central
PDF
Revista de la Rambla-Eixample
PDF
Revista Les Planes
PDF
Revista Closos
PDF
Revista Poble Sec
PDF
Revista Ribes Blaves
PDF
Revista Maig 2011
PDF
Revista Març 2004
PDF
Revista Juny 2005
PDF
Revista Juliol 2006
PDF
Revista Novembre 2006
PDF
Revista Gener 2007
Revista juny 2013
Revista maig 2013
Revista el bloc Novembre 2011
Programa Bloc Olesà 2011
Revista de final de campanya
Revista Casc Antic
Revista de Sant Bernat
Revista Collet de Sant Joan
Revista La Central
Revista de la Rambla-Eixample
Revista Les Planes
Revista Closos
Revista Poble Sec
Revista Ribes Blaves
Revista Maig 2011
Revista Març 2004
Revista Juny 2005
Revista Juliol 2006
Revista Novembre 2006
Revista Gener 2007

Recently uploaded (20)

PDF
System and Network Administration Chapter 2
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
history of c programming in notes for students .pptx
PPT
Introduction Database Management System for Course Database
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
L1 - Introduction to python Backend.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
top salesforce developer skills in 2025.pdf
PDF
Nekopoi APK 2025 free lastest update
PPTX
Transform Your Business with a Software ERP System
PPTX
ai tools demonstartion for schools and inter college
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
System and Network Administration Chapter 2
How to Migrate SBCGlobal Email to Yahoo Easily
history of c programming in notes for students .pptx
Introduction Database Management System for Course Database
Operating system designcfffgfgggggggvggggggggg
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Design an Analysis of Algorithms I-SECS-1021-03
2025 Textile ERP Trends: SAP, Odoo & Oracle
L1 - Introduction to python Backend.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Adobe Illustrator 28.6 Crack My Vision of Vector Design
top salesforce developer skills in 2025.pdf
Nekopoi APK 2025 free lastest update
Transform Your Business with a Software ERP System
ai tools demonstartion for schools and inter college
Designing Intelligence for the Shop Floor.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

Kuryr kubernetes: the seamless path to adding pods to your datacenter networking

  • 1. Kuryr-Kubernetes Adding Pods to your Datacenter Networking Irena Berezovsky @irenab Antoni Segura Puimedon @celebdor
  • 2. Kuryr-Kubernetes Project motivation ● Hard to connect VMs, bare metal and nested containers ○ No unified networking infrastructure ● Overlay 2 for Pods running in VMs ○ Performance, latency, SLA, management penalties ● Need for a smooth transition to the Cloud Native Applications ○ Ability to transition workloads to microservices at your own pace ○ VMs and Pods sharing networking infrastructure ● Bare Metal OpenStack Storage support with Fuxi-Kubernetes
  • 3. Kuryr-Kubernetes Project Mission ● Neutron, unified, community sourced networking for Pods & VMs ● OpenStack vendor support experience in the Container space ● Get Neutron users faster into container workloads ○ VMs and Pods on the same Neutron network ○ Enable both L2 and L3 connectivity between OS VMs and K8s Pods ● Easier transition to microservices ○ Connect to VM layer in the same infrastructure
  • 4. Bare Metal Use Case ● Centralized Kuryr Controller ● Kuryr Controller maps ○ K8s Pods into Neutron ports ○ K8s Services into Neutron Load Balancers ● Kuryr CNI on each Worker node performs Pod binding
  • 5. Pod in VM Use Case ● Security ● Easier node allocation ● Single overlay ● VM and Pods as targetable network resources ● Can use either Neutron trunk ports or macvlan based VM port allocation
  • 6. Mixed Use Case ● Connect to existing services in VMs ● Legacy applications alongside microservices ● VM NFVs ● Use existing cloud for Kubernetes workloads
  • 7. Supported functionality ● Pods networking ○ Kubernetes native networking ○ Pods as Neutron ports on the cluster Neutron network ○ Single tenant ○ Full connectivity enabled by default ● Kubernetes ClusterIP Services ○ Implemented by Neutron LBaaSv2 ● Bare Metal and Pod in VM support
  • 9. Kubernetes Services ● Cluster IP translates to Neutron VIP ● Service endpoints translate to Pool Members ● Uses Neutron Lbaas v2 ● Planned addition of Octavia driver
  • 11. Kuryr Controller ● Secure connection to the Neutron API Server ○ Keystone as Authorization service ● Watches Kubernetes API resources with a service account ● Stevedore Plugin based Network resources translation ○ Handlers: Receive Kubernetes resource events and patch them ○ Drivers: Used by handlers to allocate Neutron resources, allowing multiple implementations and vendors. ● Os-vif for interface plugging
  • 12. Kuryr Controller ServiceAccount --- apiVersion: v1 kind: ServiceAccount metadata: name: kuryrctl namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: kuryrctl-global subjects: - kind: User name: kuryrctl apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kuryrctl apiGroup: rbac.authorization.k8s.io --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: kuryrctl rules: - apiGroups: - "" verbs: - get - list - watch resources: - deployments - endpoints - ingress - nodes - pods - policies - services - apiGroups: - "" verbs: - update - patch resources: - endpoints - ingress - pods - policies - nodes - services - services/status
  • 13. Kuryr CNI Driver ● Kuryr CNI driver only communicates with Kubernetes API ○ Kubelet already has connection to K8s API ○ Performs local binding of the neutron port ● Supports CNI versioned output (0.3.0) ● Watches Pod resources for Controller-driven vif annotations "annotations": { "openstack.org/kuryr-vif": { "active": true, "address": "fa:16:3e:6c:1f:ff", "bridge_name": "br-int", "has_traffic_filtering": true, "id": "ba8f8d4b-1dfb-4aaf-8ab2-80c25711da3f", "network": { "bridge": "br-int", "id": "a10c5bf4-99b2-4b0d-82b1-2a2639dda4de", "label": "private", "mtu": 1450, "multi_host": false, "should_provide_bridge": false, "should_provide_vlan": false, "subnets": {[{ "cidr": "10.0.0.0/26", "dns": [], "gateway": "10.0.0.1", "ips": [{ "address": "10.0.0.8"}], "routes": [] }]} }, "plugin": "ovs", "port_profile": { "interface_id": "ba8f8d4b-1dfb-4aaf-8ab2-80c25711da3f" }, "preserve_on_delete": false, "vif_name": "tapba8f8d4b-1d" } }
  • 14. Kuryr CNI ServiceAccount --- apiVersion: v1 kind: ServiceAccount metadata: name: kuryrcni namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: kuryrcni-global subjects: - kind: User name: kuryrcni apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kuryrcni apiGroup: rbac.authorization.k8s.io --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: # "namespace" omitted since ClusterRoles are not namespaced name: kuryrcni rules: - apiGroups: - "" verbs: - get - list - watch resources: - pods
  • 15. Controller - CNI baremetal pod creation
  • 16. Trunk ports - Neutron extension
  • 17. Trunk ports - Neutron extension
  • 18. Controller - CNI pod-in-VM creation
  • 20. Scaling Kuryr ● Generic resource Pooling ○ VIF ○ Load Balancers* ● Stevedore pluggability to choose pooling behavior ● Pre-allocates Neutron resources in batch operations ● Burst tolerant
  • 21. Demo: Guestbook ● 2-tier ● 3 services ● PHP frontend, Redis backend
  • 22. ● Features ○ LoadBalancer Kubernetes Service Type ○ Resource Management ○ Ingress support ○ Policy support ○ Multi-Tenancy, Multiple Networks support ○ Management CLI ● Improvements ○ CNI split into exec and daemon ○ Handler/Driver Profiles ○ Active-Passive HA What’s Next
  • 23. Join us ● Project launchpad ○ https://launchpad.net/kuryr-kubernetes ● Repository ○ https://github.com/openstack/kuryr-kubernetes ● IRC ○ Weekly meeting #openstack-meeting-4 Mondays 14:00 UTC ○ #openstack-kuryr at Freenode ● Mailing list ○ [kuryr] in openstack-dev@lists.openstack.org
  • 24. Resources ● Documentation ○ https://docs.openstack.org/developer/kuryr-kubernetes ● Getting started ○ https://ltomasbo.wordpress.com/2017/01/29/side-by-side-and-nested-kubernetes-and-op enstack-deployment-with-kuryr/