Cause: On most cloud platforms, the ingress operator creates LoadBalancer-type services with "externalTrafficPolicy: Local" for ingress traffic. However, OVN-Kubernetes in OpenShift 4.9 does not implement "externalTrafficPolicy: Local".
Consequence: Usually, specifying "externalTrafficPolicy: Local" has no effect. However, some users report that it can cause imbalanced traffic over router pod replicas with some external load-balancers.
Fix: The ingress operator was changed to specify "externalTrafficPolicy: Cluster" when the cluster uses OVN-Kubernetes.
Result: Traffic should now be properly balanced across router pod replicas.
verified with cluster-bot and test passed
# oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.9.0-0.ci.test-2022-06-06-021116-ci-ln-tdkik1t-latest True False 57m Cluster version is 4.9.0-0.ci.test-2022-06-06-021116-ci-ln-tdkik1t-latest
# oc get network cluster -oyaml
status:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
clusterNetworkMTU: 1360
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
# oc -n openshift-ingress get svc/router-default -oyaml
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 172.30.245.102
clusterIPs:
- 172.30.245.102
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
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.9.38 bug fix update), 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-2022:4973
verified with cluster-bot and test passed # oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.9.0-0.ci.test-2022-06-06-021116-ci-ln-tdkik1t-latest True False 57m Cluster version is 4.9.0-0.ci.test-2022-06-06-021116-ci-ln-tdkik1t-latest # oc get network cluster -oyaml status: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 clusterNetworkMTU: 1360 networkType: OVNKubernetes serviceNetwork: - 172.30.0.0/16 # oc -n openshift-ingress get svc/router-default -oyaml spec: allocateLoadBalancerNodePorts: true clusterIP: 172.30.245.102 clusterIPs: - 172.30.245.102 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster