Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-859

monitor not working with UDP lb when externalTrafficPolicy: Local

XMLWordPrintable

    • ?
    • Moderate
    • ShiftStack Sprint 225, ShiftStack Sprint 226, ShiftStack Sprint 227
    • 3
    • False
    • Hide

      This bug prevents full verification of 4.12 epic https://issues.redhat.com/browse/OSASINFRA-2753

      Show
      This bug prevents full verification of 4.12 epic https://issues.redhat.com/browse/OSASINFRA-2753
    • 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

            mdulko Michał Dulko
            rlobillo Ramón Lobillo
            Ramón Lobillo Ramón Lobillo
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: