我想将流量从Kubernetes中的负载均衡器引导到部署。但是,我不想在部署的所有Pod上实现均匀的负载,而是希望与特定Pod的每个连接都保持连接。我将GRPC请求发送到Pod上的有状态实例,并且将客户端的GRPC请求不发送到其他Pod至关重要。
我当前的实现可能不必要地复杂。这是伪代码:
我受到端口数量的限制,并且由于其节点端口限制而无法使用AKS引导流量。另外,尽管调度程序的优点是客户端可以请求各种资源的容器,但是测试和维护的工作量太大。
是否有更好的解决方案将外部流量定向到单个有状态的Pod?
默认iptables服务代理实现使用非常简单的随机轮询算法来选择要使用的Pod。如果您使用IPVS实现,它确实提供了更多的选择,尽管在像AKS这样的托管提供程序上这不太可能是一个选择。因此,您可以使用支持gRPC的用户空间代理,例如Traefik或Istio Ingress。选择SO超出了SO的范围,但是大多数代理都支持某种形式的某种连接粘性。