-
Bug
-
Resolution: Done
-
Normal
-
None
-
4.12
-
?
-
Moderate
-
None
-
ShiftStack Sprint 225, ShiftStack Sprint 226, ShiftStack Sprint 227
-
3
-
False
-
-
None
-
Done
Description of problem:
Considering that the cloud-provider-config.patch.yamlis succesfully applied, applying ETPlocal-manifests.yamlOCP is creating a healthmonitor like below:
$ oc apply -f ETPlocal-manifests.yaml project.project.openshift.io/udp-lb-etplocal-ns created deployment.apps/udp-lb-etplocal-dep created service/udp-lb-etplocal-svc created $ openstack loadbalancer healthmonitor list -c name -c type +-----------------------------------------------------------------------------+------+ | name | type | +-----------------------------------------------------------------------------+------+ | monitor_8082_kube_service_kubernetes_udp-lb-etplocal-ns_udp-lb-etplocal-svc | HTTP | +-----------------------------------------------------------------------------+------+
This is setting the members in operating_status=NO_MONITOR:
$ openstack loadbalancer member list $(openstack loadbalancer show $LB_ID -c pools -f value) -c name -c operating_status +-----------------------------+------------------+ | name | operating_status | +-----------------------------+------------------+ | ostest-lf6bt-worker-0-zxm4c | NO_MONITOR | | ostest-lf6bt-master-1 | NO_MONITOR | | ostest-lf6bt-master-0 | NO_MONITOR | | ostest-lf6bt-master-2 | NO_MONITOR | | ostest-lf6bt-worker-0-rnjjs | NO_MONITOR | +-----------------------------+------------------+
Therefore, it is not possible to reach the pods from the outside.
However, changing the configuration of above manifests by removing the line externalTrafficPolicy: Local in the service specs, the health-monitor is created with type UDP-CONNECT:
$ openstack loadbalancer healthmonitor list -c name -c type +-----------------------------------------------------------------------------+-------------+ | name | type | +-----------------------------------------------------------------------------+-------------+ | monitor_8082_kube_service_kubernetes_udp-lb-etplocal-ns_udp-lb-etplocal-svc | UDP-CONNECT | +-----------------------------------------------------------------------------+-------------+
and the members are now moved to MONITOR:
$ openstack loadbalancer member list $(openstack loadbalancer show $LB_ID -c pools -f value) -c name -c operating_status +-----------------------------+------------------+ | name | operating_status | +-----------------------------+------------------+ | ostest-lf6bt-worker-0-zxm4c | ONLINE | | ostest-lf6bt-master-1 | ONLINE | | ostest-lf6bt-master-0 | ONLINE | | ostest-lf6bt-master-2 | ONLINE | | ostest-lf6bt-worker-0-rnjjs | ONLINE | +-----------------------------+------------------+
so the service load-balancer is functioning:
$ cat <(echo hostname) <(sleep 1) | nc -w 1 -u $FIP $PORT udp-lb-etplocal-dep-6cdb56d968-qfzpv
Version-Release number of selected component (if applicable):
4.12.0-0.nightly-2022-08-31-101631
How reproducible:
Always
Actual results:
UDP svc type:Load balancer is not working
Expected results:
UDP svc type:Load balancer is working
- blocks
-
OCPBUGS-3081 monitor not working with UDP lb when externalTrafficPolicy: Local
- Closed
- is cloned by
-
OCPBUGS-3081 monitor not working with UDP lb when externalTrafficPolicy: Local
- Closed
- links to