在AWS EKS集群上,我部署了一个有状态应用程序。为了在不同的吊舱和可用性区域之间负载平衡我的应用程序,我添加了一个使用外部AWS的HAProxy大会控制器。
我在这个集群中有一个北草坪会议大楼,它指向HAProxy服务。在北草坪会议大楼的顶部,我创建了一个全球加速器,并将北草坪会议大楼设置为它的目标端点。
我的要求是确保一旦用户连接到全局加速器的DNS,它们将始终被定向到同一个端点服务器,即相同的HAProxy Pod。
连接工作流如下所示:客户端用户->、全球加速器、->、北草坪会议大楼、->、HAProxy、pod。
在寻找工作方法的同时,下面是我所做的工作:
为了确保北草坪会议大楼和它的目标(
端点,全局加速器授予客户端关联
我的期望是,通过启用这些属性,用户将始终连接到同一个北草坪会议大楼,然后再连接到同一个HAProxy吊舱。
经过测试,当我通过北草坪会议大楼DNS连接到我的应用程序时,目标实现了,我得到了一个粘稠的连接。然而,当我通过全球加速器连接时,我的会话一直在崩溃。
知道为什么会这样吗?或者有什么不同的方法来解决这个问题吗?
发布于 2022-06-25 17:53:23
这不是AWS所支持的(从2022年6月起)。
他们特别指出
的一个例子是,当您希望向少数几个实例发送带有客户端IP保存的UDP通信时,可以保证相同的后端实例将处理来自相同客户端的请求(客户机亲缘关系)。这在应用程序负载平衡器中是不可能的,因为它们不支持UDP流量,而且网络负载平衡器不支持粘性会话或使用AWS全局加速器.
保存客户端IP。
https://stackoverflow.com/questions/70775207
复制相似问题