Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions modules/nw-ovn-k-day-2-masq-subnet.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-k-day-2-masq-subnet_{context}"]
= Configuring the OVN-Kubernetes masquerade subnet as a post-installation operation

[role="_abstract"]
You can change the masquerade subnet used by OVN-Kubernetes as a post-installation operation to avoid conflicts with any existing subnets that are already in use in your environment.

.Prerequisites
Expand Down
1 change: 1 addition & 0 deletions modules/nw-ovn-kubernetes-change-join-subnet.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-change-join-subnet_{context}"]
= Configuring the OVN-Kubernetes join subnet

[role="_abstract"]
You can change the join subnet used by OVN-Kubernetes to avoid conflicting with any existing subnets already in use in your environment.

.Prerequisites
Expand Down
1 change: 1 addition & 0 deletions modules/nw-ovn-kubernetes-change-transit-subnet.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-change-transit-subnet_{context}"]
= Configuring the OVN-Kubernetes transit subnet

[role="_abstract"]
You can change the transit subnet used by OVN-Kubernetes to avoid conflicting with any existing subnets already in use in your environment.

.Prerequisites
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-examine-nb-database-contents-ref_{context}"]
= Command-line arguments for ovn-nbctl to examine northbound database contents

[role="_abstract"]
The following table describes the command-line arguments that can be used with `ovn-nbctl` to examine the contents of the northbound database.


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
[id="nw-ovn-kubernetes-examine-sb-database-contents-ref_{context}"]
= Command-line arguments for ovn-sbctl to examine southbound database contents

[role="_abstract"]
The following table describes the command-line arguments that can be used with `ovn-sbctl` to examine the contents of the southbound database.

[NOTE]
====
Open a remote shell in the pod you wish to view the contents of and then run the `ovn-sbctl` commands.
Open a remote shell in the pod you want to view the contents of and then run the `ovn-sbctl` commands.
====

.Command-line arguments to examine southbound database contents
Expand Down
5 changes: 3 additions & 2 deletions modules/nw-ovn-kubernetes-features.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-purpose_{context}"]
= OVN-Kubernetes purpose

[role="_abstract"]
The OVN-Kubernetes network plugin is an open-source, fully-featured Kubernetes CNI plugin that uses Open Virtual Network (OVN) to manage network traffic flows. OVN is a community developed, vendor-agnostic network virtualization solution. The OVN-Kubernetes network plugin uses the following technologies:

* OVN to manage network traffic flows.
Expand All @@ -16,9 +17,9 @@ The OVN-Kubernetes network plugin supports the following capabilities:

* Hybrid clusters that can run both Linux and Microsoft Windows workloads. This environment is known as _hybrid networking_.
* Offloading of network data processing from the host central processing unit (CPU) to compatible network cards and data processing units (DPUs). This is known as _hardware offloading_.
* IPv4-primary dual-stack networking on bare-metal, {vmw-full}, {ibm-power-name}, {ibm-z-name}, and {rh-openstack-first} platforms.
* IPv4-primary dual-stack networking on bare metal, {vmw-full}, {ibm-power-name}, {ibm-z-name}, and {rh-openstack-first} platforms.
* IPv6 single-stack networking on {rh-openstack} and bare metal platforms.
* IPv6-primary dual-stack networking for a cluster running on a bare-metal, a {vmw-full}, or an {rh-openstack} platform.
* IPv6-primary dual-stack networking for a cluster running on bare metal, a {vmw-full}, or an {rh-openstack} platform.
* Egress firewall devices and egress IP addresses.
* Egress router devices that operate in redirect mode.
* IPsec encryption of intracluster communications.
Expand Down
1 change: 1 addition & 0 deletions modules/nw-ovn-kubernetes-installing-network-tools.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-installing-network-tools_{context}"]
= Installing network-tools on local host

[role="_abstract"]
Install `network-tools` on your local host to make a collection of tools available for debugging {product-title} cluster network issues.

.Procedure
Expand Down
7 changes: 7 additions & 0 deletions modules/nw-ovn-kubernetes-limitations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@
[role="abstract"]
IPv6 and dual-stack networking for the OVN-Kubernetes network plugin in {microshift-short} have specific limitations that affect gateway configuration, routing, and cluster stability.

endif::microshift[]
ifdef::microshift[]
[role="_abstract"]
IPv6 and dual-stack networking for the OVN-Kubernetes network plugin in {microshift-short} have specific limitations that affect gateway configuration, routing, and cluster stability.

endif::microshift[]

// The foll limitation is also recorded in the installation section.
ifndef::microshift[]
* For clusters configured for dual-stack networking, both IPv4 and IPv6 traffic must use the same network interface as the default gateway.
Expand Down
22 changes: 14 additions & 8 deletions modules/nw-ovn-kubernetes-list-database-contents.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,30 @@
[id="nw-ovn-kubernetes-list-database-contents_{context}"]
= Listing the OVN-Kubernetes northbound database contents

Each node is controlled by the `ovnkube-controller` container running in the `ovnkube-node` pod on that node. To understand the OVN logical networking entities you need to examine the northbound database that is running as a container inside the `ovnkube-node` pod on that node to see what objects are in the node you wish to see.
[role="_abstract"]
Each node is controlled by the `ovnkube-controller` container running in the `ovnkube-node` pod on that node. To understand the OVN logical networking entities you need to examine the northbound database that is running as a container inside the `ovnkube-node` pod on that node to see what objects are in the node you want to see.

.Prerequisites

* Access to the cluster as a user with the `cluster-admin` role.
* The OpenShift CLI (`oc`) installed.

.Procedure

[NOTE]
====
To run ovn `nbctl` or `sbctl` commands in a cluster you must open a remote shell into the `nbdb` or `sbdb` containers on the relevant node
====

.Procedure

. List pods by running the following command:
+
[source,terminal]
----
$ oc get po -n openshift-ovn-kubernetes
----
+
.Example output
Example output:
+
[source,terminal]
----
NAME READY STATUS RESTARTS AGE
Expand All @@ -48,7 +50,8 @@ ovnkube-node-wqn2m 8/8 Running 0 16m
$ oc get pods -n openshift-ovn-kubernetes -owide
----
+
.Example output
Example output:
+
[source,terminal]
----
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
Expand Down Expand Up @@ -88,7 +91,8 @@ $ oc exec -n openshift-ovn-kubernetes -it ovnkube-node-55xs2 \
-c northd -- ovn-nbctl lr-list
----
+
.Example output
Example output:
+
[source,terminal]
----
45339f4f-7d0b-41d0-b5f9-9fca9ce40ce6 (GR_ci-ln-t487nnb-72292-mdcnq-master-2)
Expand All @@ -108,7 +112,8 @@ $ oc exec -n openshift-ovn-kubernetes -it ovnkube-node-55xs2 \
-c nbdb -- ovn-nbctl ls-list
----
+
.Example output
Example output:
+
[source,terminal]
----
bdd7dc3d-d848-4a74-b293-cc15128ea614 (ci-ln-t487nnb-72292-mdcnq-master-2)
Expand All @@ -130,7 +135,8 @@ $ oc exec -n openshift-ovn-kubernetes -it ovnkube-node-55xs2 \
-c nbdb -- ovn-nbctl lb-list
----
+
.Example output
Example output:
+
[source,terminal]
----
UUID LB PROTO VIP IPs
Expand Down
11 changes: 8 additions & 3 deletions modules/nw-ovn-kubernetes-list-resources.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-list-resources_{context}"]
= Listing all resources in the OVN-Kubernetes project

[role="_abstract"]
Finding the resources and containers that run in the OVN-Kubernetes project is important to help you understand the OVN-Kubernetes networking implementation.

.Prerequisites
Expand All @@ -22,7 +23,9 @@ Finding the resources and containers that run in the OVN-Kubernetes project is i
$ oc get all,ep,cm -n openshift-ovn-kubernetes
----
+
.Example output
Example output:

+
[source,terminal]
----
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
Expand Down Expand Up @@ -73,7 +76,8 @@ The `ovnkube-config` config map has the {product-title} OVN-Kubernetes configura
----
$ oc get pods ovnkube-node-bcvts -o jsonpath='{.spec.containers[*].name}' -n openshift-ovn-kubernetes
----
.Expected output
Expected output:

+
[source,terminal]
----
Expand All @@ -87,7 +91,8 @@ The `ovnkube-node` pod is made up of several containers. It is responsible for h
----
$ oc get pods ovnkube-control-plane-65c6f55656-6d55h -o jsonpath='{.spec.containers[*].name}' -n openshift-ovn-kubernetes
----
.Expected output
Expected output:

+
[source,terminal]
----
Expand Down
16 changes: 10 additions & 6 deletions modules/nw-ovn-kubernetes-list-southbound-database-contents.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,30 @@
[id="nw-ovn-kubernetes-list-southbound-database-contents_{context}"]
= Listing the OVN-Kubernetes southbound database contents

Each node is controlled by the `ovnkube-controller` container running in the `ovnkube-node` pod on that node. To understand the OVN logical networking entities you need to examine the northbound database that is running as a container inside the `ovnkube-node` pod on that node to see what objects are in the node you wish to see.
[role="_abstract"]
Each node is controlled by the `ovnkube-controller` container running in the `ovnkube-node` pod on that node. To understand the OVN logical networking entities you need to examine the southbound database that is running as a container inside the `ovnkube-node` pod on that node to see what objects are in the node you want to see.

.Prerequisites

* Access to the cluster as a user with the `cluster-admin` role.
* The OpenShift CLI (`oc`) installed.

.Procedure

[NOTE]
====
To run ovn `nbctl` or `sbctl` commands in a cluster you must open a remote shell into the `nbdb` or `sbdb` containers on the relevant node
====

.Procedure

. List the pods by running the following command:
+
[source,terminal]
----
$ oc get po -n openshift-ovn-kubernetes
----
+
.Example output
Example output:
+
[source,terminal]
----
NAME READY STATUS RESTARTS AGE
Expand All @@ -48,7 +50,8 @@ ovnkube-node-wqn2m 8/8 Running 0 16m
$ oc get pods -n openshift-ovn-kubernetes -owide
----
+
.Example output
Example output:
+
[source,terminal]
----
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
Expand Down Expand Up @@ -77,7 +80,8 @@ $ ovn-sbctl show
----

+
.Example output
Example output:

+
[source,terminal]
----
Expand Down
13 changes: 9 additions & 4 deletions modules/nw-ovn-kubernetes-running-network-tools.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-running-network-tools_{context}"]
= Running network-tools

[role="_abstract"]
Get information about the logical switches and routers by running `network-tools`.

.Prerequisites
Expand All @@ -23,7 +24,8 @@ Get information about the logical switches and routers by running `network-tools
$ ./debug-scripts/network-tools ovn-db-run-command ovn-nbctl lr-list
----
+
.Example output
Example output:

+
[source,terminal]
----
Expand All @@ -39,7 +41,8 @@ $ ./debug-scripts/network-tools ovn-db-run-command \
ovn-sbctl find Port_Binding type=localnet
----
+
.Example output
Example output:

+
[source,terminal]
----
Expand Down Expand Up @@ -78,7 +81,8 @@ $ ./debug-scripts/network-tools ovn-db-run-command \
ovn-sbctl find Port_Binding type=l3gateway
----
+
.Example output
Example output:

+
[source,terminal]
----
Expand Down Expand Up @@ -141,7 +145,8 @@ $ ./debug-scripts/network-tools ovn-db-run-command \
ovn-sbctl find Port_Binding type=patch
----
+
.Example output
Example output:

+
[source,terminal]
----
Expand Down
1 change: 1 addition & 0 deletions modules/nw-ovn-kubernetes-session-affinity.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[id="nw-ovn-kubernetes-session-affinity_{context}"]
= Session affinity

[role="_abstract"]
Session affinity is a feature that applies to Kubernetes `Service` objects. You can use _session affinity_ if you want to ensure that each time you connect to a <service_VIP>:<Port>, the traffic is always load balanced to the same back end. For more information, including how to set session affinity based on a client's IP address, see link:https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity[Session affinity].


Expand Down
1 change: 1 addition & 0 deletions modules/ovn-kubernetes-architecture-con.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
[id="ovn-kubernetes-architecture-con"]
= Introduction to OVN-Kubernetes architecture

[role="_abstract"]
The following diagram shows the OVN-Kubernetes architecture.

.OVK-Kubernetes architecture
Expand Down
1 change: 1 addition & 0 deletions modules/ovn-kubernetes-logical-architecture-con.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
[id="ovn-kubernetes-logical-architecture-con_{context}"]
= OVN-Kubernetes logical architecture

[role="_abstract"]
OVN is a network virtualization solution. It creates logical switches and routers. These switches and routers are interconnected to create any network topologies. When you run `ovnkube-trace` with the log level set to 2 or 5 the OVN-Kubernetes logical components are exposed. The following diagram shows how the routers and switches are connected in {product-title}.

.OVN-Kubernetes router and switch components
Expand Down
34 changes: 34 additions & 0 deletions modules/virt-live-migration-requirements.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Module included in the following assemblies:
//
// * virt/live_migration/virt-about-live-migration.adoc

:_mod-docs-content-type: CONCEPT
[id="virt-live-migration-requirements_{context}"]
= Live migration requirements

[role="_abstract"]
Live migration requires specific cluster configuration, including shared storage, sufficient resources, and compatible node settings.

Live migration has the following requirements:

ifdef::openshift-dedicated[]
* The cluster must have shared storage that supports live migration.
endif::openshift-dedicated[]
ifndef::openshift-dedicated[]
* The cluster must have shared storage with `ReadWriteMany` (RWX) access mode.
endif::openshift-dedicated[]
* The cluster must have sufficient RAM and network bandwidth.
+
[NOTE]
====
You must ensure that there is enough memory request capacity in the cluster to support node drains that result in live migrations. You can determine the approximate required spare memory by using the following calculation:

----
Product of (Maximum number of nodes that can drain in parallel) and (Highest total VM memory request allocations across nodes)
----

The default number of migrations that can run in parallel in the cluster is 5.
====

* If a VM uses a host model CPU, the nodes must support the CPU.
* Configuring a dedicated Multus network for live migration is highly recommended. A dedicated network minimizes the effects of network saturation on tenant workloads during migration. For more details, see the "Configuring a dedicated network for live migration" section.
2 changes: 1 addition & 1 deletion modules/virt-vm-migration-tuning.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ You can adjust your cluster-wide live migration settings based on the type of wo

This enables you to control how many VMs migrate at the same time, the network bandwidth you want to use for each migration, and how long {VirtProductName} attempts to complete the migration before canceling the process. Configure these settings in the `HyperConverged` custom resource (CR).

If you are migrating multiple VMs per node at the same time, set a `bandwidthPerMigration` limit to prevent a large or busy VM from using a large portion of the nodes network bandwidth. By default, the `bandwidthPerMigration` value is `0`, which means unlimited.
If you are migrating multiple VMs per node at the same time, set a `bandwidthPerMigration` limit to prevent a large or busy VM from using a large portion of the node's network bandwidth. By default, the `bandwidthPerMigration` value is `0`, which means unlimited.

A large VM running a heavy workload (for example, database processing), with higher memory dirty rates, requires a higher bandwidth to complete the migration.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ include::_attributes/common-attributes.adoc[]

toc::[]

[role="_abstract"]
The {product-title} cluster uses a virtualized network for pod and service networks.

Part of {openshift-networking}, the OVN-Kubernetes network plugin is the default network provider for {product-title}. OVN-Kubernetes is based on Open Virtual Network (OVN) and provides an overlay-based networking implementation. A cluster that uses the OVN-Kubernetes plugin also runs Open vSwitch (OVS) on each node. OVN configures OVS on each node to implement the declared network configuration.
Expand Down
Loading