我们在我们的 kuberntes 集群中使用了一个 haproxy 入口,它具有 cookie 亲和性来处理粘性会话。
入口配置如下:
ingress.kubernetes.io/affinity: cookie
ingress.kubernetes.io/session-cookie-keywords: indirect nocache httponly attr Max-Age=3600
ingress.kubernetes.io/session-cookie-name: IngressCookie
我们希望在每次请求/响应后延长cookie 的生命周期,但事实并非如此。在给定的 Max-Age 期间,我们只接收一次 cookie(对于第一个请求)。
这种行为可以改变吗?
作为一种解决方法,我们删除了 Max-Age 属性 - 现在 cookie 与客户端会话一样长(例如,浏览器实例处于活动状态)。但这可能会导致阻止重新部署/更新集群中的 Pod,因为我们还使用了排水支持功能(如果客户端会话仍然处于活动状态,活动客户端可以再次到达同一个 Pod)。