Cause:
After SDN migration from openshift-SDN to OVN-K8S node's control plane IP and the VIP being assigned to ovs bridge instead of physical NIC.
After the VIP assigned to the ovs bridge, we still have an orphan route to control plane network pointing to the physical NIC instead of the ovs-bridge.
Consequence:
nodes can't communicate with other nodes in the control plane network. which leads to Keepalived wrongly sets the API VIP in multiple nodes, and as a result of that the API is unavailable.
Fix:
Set the network mask of VIPs to host netmask (e.g: /32 for IPV4)
Result:
Successfully migrate SDN plugin to OVN-K8S
Description of problem:
During SDN migration (migrate cluster network provider form openshift-sdn to ovn-kube), the node ip will be allocated to ovs bridge interface `br-ex`, instead of the physical interface. However, the keepalived.conf cannot be regenerated accordingly. It sill used the name of the physical interface. It causes cluster inaccessible from the cluster network.
Version-Release number of selected component (if applicable):
4.6.0-0.ci-2020-08-30-084452
How reproducible:
Steps to Reproduce:
1. Create a baremetal cluster
2. Allow migration operation by `oc annotate Network.operator.openshift.io cluster "networkoperator.openshift.io/network-migration"=""`
3. Start migration by `oc patch Network.config.openshift.io cluster --type='merge' --patch '{"spec":{"networkType":"OVNKubernetes"}}'`
4. Wait MCO to apply new Machine Config with 'ovs-configuration.service' on master and worker. After master/worker node reboot, login to the node and check the keepalived.conf.
Actual results:
The 'interface' field of vrrp instance is still the physical interface, e.g. 'enp2s0'.
Expected results:
The 'interface' is changed to 'br-ex', which is the current default interface of the node.
Additional info:
[kni@provisionhost-0-0 ~]$ oc version
Client Version: 4.6.0-0.nightly-2020-10-02-065738
Server Version: 4.6.0-0.ci-2020-10-02-054056
Cluster deployed with OpenShiftSDN
After migration to OVN keepalived conf switched from interface to br-ex
[core@master-0-0 ~]$ cat /etc/keepalived/keepalived.conf | grep interface
interface br-ex
interface br-ex
Also even after this change, it took a lot of time to Kube-API to rise, more than few hours
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2020:4196
Description of problem: During SDN migration (migrate cluster network provider form openshift-sdn to ovn-kube), the node ip will be allocated to ovs bridge interface `br-ex`, instead of the physical interface. However, the keepalived.conf cannot be regenerated accordingly. It sill used the name of the physical interface. It causes cluster inaccessible from the cluster network. Version-Release number of selected component (if applicable): 4.6.0-0.ci-2020-08-30-084452 How reproducible: Steps to Reproduce: 1. Create a baremetal cluster 2. Allow migration operation by `oc annotate Network.operator.openshift.io cluster "networkoperator.openshift.io/network-migration"=""` 3. Start migration by `oc patch Network.config.openshift.io cluster --type='merge' --patch '{"spec":{"networkType":"OVNKubernetes"}}'` 4. Wait MCO to apply new Machine Config with 'ovs-configuration.service' on master and worker. After master/worker node reboot, login to the node and check the keepalived.conf. Actual results: The 'interface' field of vrrp instance is still the physical interface, e.g. 'enp2s0'. Expected results: The 'interface' is changed to 'br-ex', which is the current default interface of the node. Additional info: