Kuryr SDN and OpenShift Container Platform

Kuryr (or more specifically Kuryr-Kubernetes) is an SDN solution built using CNI and OpenStack Neutron. Its advantages include being able to use a wide range of Neutron SDN backends and providing inter-connectivity between Kubernetes pods and OpenStack virtual machines (VMs).

Kuryr-Kubernetes and OpenShift Container Platform integration is primarily designed for OpenShift Container Platform clusters running on OpenStack VMs. Kuryr-Kubernetes components are installed as pods on OpenShift Container Platform in the kuryr namespace:

  • kuryr-controller - a single service instance, installed on an infra node. Modeled in OpenShift Container Platform as a Deployment.

  • kuryr-cni - container installing and configuring Kuryr as CNI driver on each OpenShift Container Platform node. Modeled in OpenShift Container Platform as a DaemonSet.

The Kuryr controller watches the OpenShift API server for pod, service, and namespace create, update, and delete events. It maps the OpenShift Container Platform API calls to corresponding objects in Neutron and Octavia. This means that every network solution that implements the Neutron trunk port functionality can be used to back OpenShift Container Platform via Kuryr. This includes open source solutions such as OVS and OVN as well as Neutron-compatible commercial SDNs.

Installing Kuryr SDN

For the Kuryr SDN installation on an OpenStack cloud, you must follow the steps described in the OpenStack configuration documentation.

Verification

Once the installation of OpenShift Container Platform is finished, you can check if Kuryr pods are deployed successfully:

$ oc -n kuryr get pods -o wide
NAME                                READY     STATUS    RESTARTS   AGE       IP              NODE
kuryr-cni-ds-66kt2                  2/2       Running   0          3d        192.168.99.14   infra-node-0.openshift.example.com
kuryr-cni-ds-ggcpz                  2/2       Running   0          3d        192.168.99.16   master-0.openshift.example.com
kuryr-cni-ds-mhzjt                  2/2       Running   0          3d        192.168.99.6    app-node-1.openshift.example.com
kuryr-cni-ds-njctb                  2/2       Running   0          3d        192.168.99.12   app-node-0.openshift.example.com
kuryr-cni-ds-v8hp8                  2/2       Running   0          3d        192.168.99.5    infra-node-1.openshift.example.com
kuryr-controller-59fc7f478b-qwk4k   1/1       Running   0          3d        192.168.99.5    infra-node-1.openshift.example.com

kuryr-cni pods run on every OpenShift Container Platform node. Single kuryr-controller instances run on any of the infra nodes.

Network policies and nodeport services are not supported when Kuryr SDN is enabled.