Bug 1455326

Summary: [3.4][RFE] Randomize node lists
Product: OpenShift Container Platform Reporter: Samuel Munilla <smunilla>
Component: NetworkingAssignee: Samuel Munilla <smunilla>
Networking sub component: router QA Contact: zhaozhanqi <zzhao>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: aos-bugs, bbennett, bleanhar, bmeng, bvincell, byount, eparis, rchopra, zzhao
Version: 3.4.0   
Target Milestone: ---   
Target Release: 3.4.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Feature: Setting the router environment variable ROUTER_BACKEND_PROCESS_ENDPOINTS=shuffle will randomize the order of backends in the haproxy configuration. Reason: With long running sessions and a router which reloads regularly the first endpoint in the config may receive significantly more load than other backends. Setting the environment variable will randomize the order of the backends on every reload and thus help spread the load.
Story Points: ---
Clone Of: 1447115 Environment:
Last Closed: 2017-06-15 18:40:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1447115, 1455327, 1456989    
Bug Blocks: 1455325    

Comment 1 Eric Paris 2017-05-30 21:27:19 UTC
https://github.com/openshift/ose/pull/737

Comment 3 zhaozhanqi 2017-06-01 06:46:24 UTC
verified this bug on openshift v3.4.1.30

When enable the env: 
oc env dc router ROUTER_BACKEND_PROCESS_ENDPOINTS=shuffle

check the endpoints in haproxy.config, it will be random order:


  server 81a5bcbca73d96f8657df7509ff133e0 10.129.0.18:8080 check inter 5000ms cookie 81a5bcbca73d96f8657df7509ff133e0 weight 100
  server 143d0ca2ad39d6ecb07e3bf369e766aa 10.129.0.15:8080 check inter 5000ms cookie 143d0ca2ad39d6ecb07e3bf369e766aa weight 100
  server 1ef4b717b10b2a0d8a4f739f89872b7f 10.129.0.16:8080 check inter 5000ms cookie 1ef4b717b10b2a0d8a4f739f89872b7f weight 100
  server 0905556f9c38a42b197c699c92c67667 10.129.0.17:8080 check inter 5000ms cookie 0905556f9c38a42b197c699c92c67667 weight 100


before this fixed, the endpints will be in order:

  server 143d0ca2ad39d6ecb07e3bf369e766aa 10.129.0.15:8080 check inter 5000ms cookie 143d0ca2ad39d6ecb07e3bf369e766aa weight 100
  server 1ef4b717b10b2a0d8a4f739f89872b7f 10.129.0.16:8080 check inter 5000ms cookie 1ef4b717b10b2a0d8a4f739f89872b7f weight 100
  server 0905556f9c38a42b197c699c92c67667 10.129.0.17:8080 check inter 5000ms cookie 0905556f9c38a42b197c699c92c67667 weight 100
  server 81a5bcbca73d96f8657df7509ff133e0 10.129.0.18:8080 check inter 5000ms cookie 81a5bcbca73d96f8657df7509ff133e0 weight 100

Comment 5 errata-xmlrpc 2017-06-15 18:40:35 UTC
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, 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-2017:1425