如何在Openshift3中禁用粘性会话

时间:2017-06-20 21:13:48

标签: session docker containers openshift haproxy

如果您在Openshift3中扩展Pod,则来自同一客户端IP地址的所有请求都将发送到与会话关联的容器。

是否有任何配置可禁用粘性会话?如何在Openshift中管理内部HAProxy的选项?

2 个答案:

答案 0 :(得分:7)

对于后代,由于我遇到了同样的问题,我想记录我在Graham Dumpleton的优秀评论中使用的解决方案。

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

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

这可以防止设置cookie,并允许balance算法为来自同一客户端的后续请求选择适当的后端。要更改余额算法:

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

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

答案 1 :(得分:3)

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

有关更改ha OCP 3.5 docs

中haproxy的内部结构的更多信息