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
10.
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
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