1

我有一个lift 'n shift 部署类型(即绝不是云原生),我想设置粘性会话,以便请求继续由同一个pod(如果可用)处理(从客户的角度来看)。

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

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

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

编辑 1:部署在 Oracle Cloud 中运行。我们在纯 TCP 模式(即 OSI 第 4 层)中使用 Oracle Cloud Loadbalancer 服务。

4

1 回答 1

0

问题描述的其实是K8s中默认的一种流量管理行为。每个 TCP 会话中的数据包都针对同一个 pod。TCP 会话从某个源 IP(在我们的例子中为 LB)和源端口(每个会话不同)启动,并且该会话在其整个持续时间内保持“粘性”。

于 2020-11-09T16:24:41.953 回答