Openshift HAproxy粘性会话问题

Openshift HAproxy粘性会话问题,openshift,load-balancing,haproxy,Openshift,Load Balancing,Haproxy,我有一个部署,有两个web应用程序的吊舱。web应用程序需要登录并维护会话。 在我杀死第一个pod后,我会自动重定向到第二个pod的登录页面,但当第一个pod再次加载时,我会重定向回它。 我尝试使用HAproxy“平衡源”算法和coockies。 你知道为什么它不留在第二个pod上吗?平衡源代码使用一种哈希算法,每当可用后端的数量发生变化时,它都会改变工作负载分布,因为这就是它的设计目的。如果您有两个以上的后端,您还会发现关闭任何一个后端都会导致一些甚至没有到达受影响后端的流量转移到另一个后端,

我有一个部署,有两个web应用程序的吊舱。web应用程序需要登录并维护会话。 在我杀死第一个pod后,我会自动重定向到第二个pod的登录页面,但当第一个pod再次加载时,我会重定向回它。 我尝试使用HAproxy“平衡源”算法和coockies。
你知道为什么它不留在第二个pod上吗?

平衡源代码使用一种哈希算法,每当可用后端的数量发生变化时,它都会改变工作负载分布,因为这就是它的设计目的。如果您有两个以上的后端,您还会发现关闭任何一个后端都会导致一些甚至没有到达受影响后端的流量转移到另一个后端,因为这种重新分布

如果由于正在运行的服务器数量发生变化而导致哈希结果发生变化,则许多客户端将被定向到不同的服务器


要解释为什么在使用Cookie而不是
balance source
时没有看到预期的行为,我们需要查看您的配置。

在这种情况下,您应该有一个所有应用程序实例都使用的会话数据库。当您有多个实例时,在内存中保留会话数据库在有多个进程时是不可靠的。您使用的是什么语言/框架?对于客户端,我们使用一个名为jazz的IBM工具,它不是开源的。我的主要问题是为什么HAproxy会在第一个pod启动时将连接重定向回第一个pod,而不是第二个pod。谢谢!那么,在我的用例中,我应该使用什么样的正确算法来代替平衡源呢?请参阅。
balance
算法并不那么关键,因为它只在客户端没有建立现有关联时用于选择后端。