如果您在Openshift3中扩展Pod,则来自同一客户端IP地址的所有请求都将发送到与会话关联的容器。
是否有任何配置可禁用粘性会话?如何在Openshift中管理内部HAProxy的选项?
答案 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的内部结构的更多信息