考虑到K8s中的src IP和src端口的粘性会话



我有一个lift'n-shift部署类型(即,决不是云原生的(,我想设置粘性会话,以便在可用的情况下(从客户端的角度(由同一个pod继续处理请求。

Client --> LB --> Ingress --> Service --> Deployment

由于LB执行SNAT,我认为service.spec.sessionAffinityConfig.clientIP会起作用,但由于所有请求都来自负载均衡器的同一源IP,因此工作负载不会在部署中的所有pod之间真正平衡。

你能想出任何方法来考虑源IP吗;粘性会话行为中的端口对?

编辑1:部署在Oracle云中运行。我们在纯TCP模式下使用Oracle云负载均衡器服务(即OSI Layer4(。

问题所描述的实际上是K8s中默认的流量管理行为。每个TCP会话中的数据包都以相同的pod为目标。TCP会话是从特定的源IP(在我们的情况下是LB(和源端口(每个会话不同(发起的;粘性";在其整个持续时间内。

最新更新