Skip to content

Commit 6be4585

Browse files
authored
Merge pull request #26102 from jboxman/OSDOCS-1524
OSDOCS#1524 - Update OVN-Kubernetes migration procedure
2 parents 1517dd4 + 836580b commit 6be4585

File tree

5 files changed

+551
-21
lines changed

5 files changed

+551
-21
lines changed

_topic_map.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,9 +748,9 @@ Topics:
748748
Topics:
749749
- Name: About the OVN-Kubernetes network provider
750750
File: about-ovn-kubernetes
751-
- Name: Migrate from the OpenShift SDN default CNI network provider
751+
- Name: Migrate from the OpenShift SDN cluster network provider
752752
File: migrate-from-openshift-sdn
753-
- Name: Rollback to the OpenShift SDN default CNI network provider
753+
- Name: Rollback to the OpenShift SDN cluster network provider
754754
File: rollback-to-openshift-sdn
755755
- Name: Configuring an egress firewall for a project
756756
File: configuring-egress-firewall-ovn
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ovn_kubernetes_network_provider/migrate-from-openshift-sdn.adoc
4+
5+
[id="nw-ovn-kubernetes-migration-about_{context}"]
6+
= Migration to the OVN-Kubernetes network provider
7+
8+
Migrating to the OVN-Kubernetes Container Network Interface (CNI) default network provider is a manual process that includes some downtime during which your cluster is unreachable. Although a rollback procedure is provided, the migration is intended to be a one-way process.
9+
10+
[NOTE]
11+
====
12+
A migration to the OVN-Kubernetes network provider is supported on installer-provisioned clusters on only bare metal hardware.
13+
14+
Performing a migration on a user-provisioned cluster on bare metal hardware is not supported.
15+
====
16+
17+
[id="considerations-migrating-ovn-kubernetes-network-provider_{context}"]
18+
== Considerations for migrating to the OVN-Kubernetes network provider
19+
20+
The subnets assigned to nodes and the IP addresses assigned to individual pods are not preserved during the migration.
21+
22+
While the OVN-Kubernetes network provider implements many of the capabilities present in the OpenShift SDN network provider, the configuration is not the same.
23+
24+
If your cluster uses any of the following OpenShift SDN capabilities, you must manually configure the same capability in OVN-Kubernetes:
25+
26+
* Namespace isolation
27+
* Egress IP addresses
28+
* Egress network policies
29+
* Egress router pods
30+
* Multicast
31+
* Network policies
32+
33+
The following sections highlight the differences in configuration between the aforementioned capabilities in OVN-Kubernetes and OpenShift SDN.
34+
35+
[id="how-the-migration-process-works_{context}"]
36+
== How the migration process works
37+
38+
The migration process works as follows:
39+
40+
. Set a temporary annotation set on the Cluster Network Operator (CNO) configuration object. This annotation triggers the CNO to watch for a change to the `defaultNetwork` field.
41+
42+
. Suspend the Machine Config Operator (MCO) to ensure that it does not interrupt the migration.
43+
44+
. Update the `defaultNetwork` field. The update causes the CNO to destroy the OpenShift SDN control plane pods and deploy the OVN-Kubernetes control plane pods. Additionally, it updates the Multus objects to reflect the new cluster network provider.
45+
46+
. Reboot each node in the cluster. Because the existing pods in the cluster are unaware of the change to the cluster network provider, rebooting each node ensures that each node is drained of pods. New pods are attached to the new cluster network provided by OVN-Kubernetes.
47+
48+
. Enable the MCO after all nodes in the cluster reboot. The MCO rolls out an update to the systemd configuration necessary to complete the migration. The MCO updates a single machine per pool at a time by default, so the total time the migration takes increases with the size of the cluster.
49+
50+
[discrete]
51+
[id="namespace-isolation_{context}"]
52+
=== Namespace isolation
53+
54+
OVN-Kubernetes supports only the network policy isolation mode.
55+
56+
[IMPORTANT]
57+
====
58+
If your cluster is using OpenShift SDN configured in either the multitenant or subnet isolation modes, you cannot migrate to the OVN-Kubernetes network provider.
59+
====
60+
61+
[discrete]
62+
[id="egress-ip-addresses_{context}"]
63+
=== Egress IP addresses
64+
65+
The differences in configuring an egress IP address between OVN-Kubernetes and OpenShift SDN is described in the following table:
66+
67+
.Differences in egress IP address configuration
68+
[cols="1a,1a",options="header"]
69+
|===
70+
|OVN-Kubernetes|OpenShift SDN
71+
72+
|
73+
* Create an `EgressIPs` object
74+
* Add an annotation on a `Node` object
75+
76+
|
77+
* Patch a `NetNamespace` object
78+
* Patch a `HostSubnet` object
79+
|===
80+
81+
For more information on using egress IP addresses in OVN-Kubernetes, see "Configuring an egress IP address".
82+
83+
[discrete]
84+
[id="egress-network-policies_{context}"]
85+
=== Egress network policies
86+
87+
The difference in configuring an egress network policy, also known as an egress firewall, between OVN-Kubernetes and OpenShift SDN is described in the following table:
88+
89+
.Differences in egress network policy configuration
90+
[cols="1a,1a",options="header"]
91+
|===
92+
|OVN-Kubernetes|OpenShift SDN
93+
94+
|
95+
* Create an `EgressFirewall` object in a namespace
96+
97+
|
98+
* Create an `EgressNetworkPolicy` object in a namespace
99+
|===
100+
101+
For more information on using an egress firewall in OVN-Kubernetes, see "Configuring an egress firewall for a project".
102+
103+
[discrete]
104+
[id="egress-router-pods_{context}"]
105+
=== Egress router pods
106+
107+
OVN-Kubernetes does not support using egress router pods in {product-title} 4.6.
108+
109+
[discrete]
110+
[id="multicast_{context}"]
111+
=== Multicast
112+
113+
The difference between enabling multicast traffic on OVN-Kubernetes and OpenShift SDN is described in the following table:
114+
115+
.Differences in multicast configuration
116+
[cols="1a,1a",options="header"]
117+
|===
118+
|OVN-Kubernetes|OpenShift SDN
119+
120+
|
121+
* Add an annotation on a `Namespace` object
122+
123+
|
124+
* Add an annotation on a `NetNamespace` object
125+
|===
126+
127+
For more information on using an egress firewall in OVN-Kubernetes, see "Enabling multicast for a project".
128+
129+
[discrete]
130+
[id="network-policies_{context}"]
131+
=== Network policies
132+
133+
OVN-Kubernetes fully supports the Kubernetes `NetworkPolicy` API in the `networking.k8s.io/v1` API group. No changes are necessary in your network policies when migrating from OpenShift SDN.

0 commit comments

Comments
 (0)