From 0e52d123b21e41e81d39e431ae22137e3239b242 Mon Sep 17 00:00:00 2001 From: Aswin Suryanarayanan Date: Wed, 4 Oct 2023 21:26:34 -0400 Subject: [PATCH] Add OVN-IC documentation Signed-off-by: Aswin Suryanarayanan --- .../networkplugin-syncer/_index.en.md | 4 ++ .../architecture/route-agent/_index.en.md | 50 +++++++++++++++++-- .../images/ovn-kubernetes/ovn-with-ic.svg | 1 + .../images/ovn-kubernetes/ovn-without-ic.svg | 1 + 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 src/static/images/ovn-kubernetes/ovn-with-ic.svg create mode 100644 src/static/images/ovn-kubernetes/ovn-without-ic.svg diff --git a/src/content/getting-started/architecture/networkplugin-syncer/_index.en.md b/src/content/getting-started/architecture/networkplugin-syncer/_index.en.md index cc603328d..8e1231412 100644 --- a/src/content/getting-started/architecture/networkplugin-syncer/_index.en.md +++ b/src/content/getting-started/architecture/networkplugin-syncer/_index.en.md @@ -2,6 +2,10 @@ title: "Network Plugin Syncer" --- +{{% notice info %}} +For Submariner 0.16 and above [route-agent](../route-agent/) +{{% /notice %}} + The Network Plugin Syncer provides a framework for components to interface with the configured Kubernetes Container Network Interface (CNI) plugin to perform any API/database tasks necessary to facilitate routing cross-cluster diff --git a/src/content/getting-started/architecture/route-agent/_index.en.md b/src/content/getting-started/architecture/route-agent/_index.en.md index 69467996e..d6ecee456 100644 --- a/src/content/getting-started/architecture/route-agent/_index.en.md +++ b/src/content/getting-started/architecture/route-agent/_index.en.md @@ -33,6 +33,50 @@ the new active Gateway Engine node. ## OVN Kubernetes -For the OVN Kubernetes CNI plugin, host network routing is configured on all nodes and, -on the active Gateway node, IP forwarding is configured between the `ovn-k8s-gw0` -and cable interfaces. + With OVN Kubernetes we reuse the GENEVE tunnels created by OVNKubernetes CNI to reach the +gateway nodes from non-gateway nodes and a separate VXLAN tunnel is not created. + +{{% notice info %}} +For Submariner 0.15 and below refer [network plugin syncer](../networkplugin-syncer/) +{{% /notice %}} + +With OVN we can have two deployment models, + +{{% notice info %}} +The Submariner automatically chooses the mode based on the deployment and this is not a +configuration option in Submariner +{{% /notice %}} + +### Single Zone + +A single-zone deployment involves a single OVN database and a set of master nodes that +program it. + +Here, Submariner configures the ovn_cluster_router to route traffic to other clusters through the +ovn-k8s-mp0 interface of the gateway node, effectively bridging it to the host networking +stack of the gateway node. Since ovn_cluster_router is distributed, this route also ensures +that traffic from non-gateway node is directed to gateway node. + +The traffic that comes through Submariner tunnel from remote cluster to gateway node will be +directed to ovn-k8s-mp0 interface through host routes and will be handled by ovn_cluster_router. + +![Single Zone](/images/ovn-kubernetes/ovn-without-ic.svg) + +### Multiple Zone + +In a multi-zone configuration, each zone operates with its dedicated OVN database and OVN master pod. +These zones are interconnected via transit switches, and OVN-Kubernetes orchestrates the essential +routing for enabling pod and service communication across nodes situated in different zones. + +Within this framework, the Submariner route agent plays a pivotal role. It ensures that the same +routing configurations employed in a single zone are replicated in the OVN cluster router and the +host stack of the gateway node. For nodes outside the zone where the gateway node is located, +Submariner takes action by adding a route that directs traffic to remote clusters, channeling +it through the transit switch IP of the gateway node. + +The host networking rules remain consistent across all nodes. They guide traffic towards the +ovn_cluster_router specific to that zone, leveraging ovn-k8s-mp0. The ovn_cluster_router, in +turn, guarantees that the traffic is directed through the Submariner tunnel via the gateway +node. + +![Multiple Zone](/images/ovn-kubernetes/ovn-with-ic.svg) diff --git a/src/static/images/ovn-kubernetes/ovn-with-ic.svg b/src/static/images/ovn-kubernetes/ovn-with-ic.svg new file mode 100644 index 000000000..af15332e2 --- /dev/null +++ b/src/static/images/ovn-kubernetes/ovn-with-ic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/static/images/ovn-kubernetes/ovn-without-ic.svg b/src/static/images/ovn-kubernetes/ovn-without-ic.svg new file mode 100644 index 000000000..e8e3a5a0d --- /dev/null +++ b/src/static/images/ovn-kubernetes/ovn-without-ic.svg @@ -0,0 +1 @@ + \ No newline at end of file