How to disable sticky sessions in Openshift3

后端 未结 2 521
天涯浪人
天涯浪人 2021-01-03 09:16

If you scale up a Pod in Openshift3, all requests coming from the same client IP address are sent to container which has the session associated.

Is there any config

相关标签:
2条回答
  • 2021-01-03 09:47

    oc set env dc/router ROUTER_TCP_BALANCE_SCHEME=roundrobin will change the load balancing algorithm haproxy uses for routes it just passes through (default is source). ROUTER_LOAD_BALANCE_ALGORITHM will change it for routes where it terminates TLS (default us leastconn).

    More info on changing the internals of how haproxy works in the OCP 3.5 docs .

    0 讨论(0)
  • 2021-01-03 09:55

    For posterity, and since I had the same problem, I want to document the solution I used from Graham Dumpleton's excellent comment.

    As it turns out, a cookie is set during the first request that redirects subsequent requests to the same back-end. To disable this behavior on a per-route basis:

    oc annotate routes myroute haproxy.router.openshift.io/disable_cookies='true'
    

    This prevents the cookie from being set and allows the balance algorithm to select the appropriate back-end for subsequent requests from the same client. To change the balance algorithm:

    oc annotate routes myroute haproxy.router.openshift.io/balance='roundrobin'
    

    With these two annotations set, requests from the same client IP address are sent to each back-end in turn, instead of the same back-end over and over.

    0 讨论(0)
提交回复
热议问题