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