如何在Openshift3中禁用粘性会话

如果在Openshift3中放大一个Pod,所有来自同一个客户端IP地址的请求将被发送到会话关联的容器。

有没有configuration来禁用粘性会话? 如何在Openshift中pipe理内部HAProxy的选项?

oc set env dc/router ROUTER_TCP_BALANCE_SCHEME=roundrobin将更改haproxy对刚刚通过的路由使用的负载平衡algorithm(默认为source )。 ROUTER_LOAD_BALANCE_ALGORITHM将为其终止TLS的路由(默认为leastconn )更改它。

更多关于如何haproxy在OCP 3.5文档中工作的内部信息。

对于后人,由于我有同样的问题,我想logging下我从Graham Dumpleton的出色评论中使用的解决scheme。

事实certificate,在第一个请求中设置了一个cookie,将后续请求redirect到同一个后端。 要在每个路由的基础上禁用此行为:

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

这可以防止设置cookie,并允许平衡algorithm为来自同一客户端的后续请求select合适的后端。 要更改平衡algorithm:

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

通过设置这两个注释,来自同一个客户端IP地址的请求将依次发送到每个后端,而不是同一个后端。