基于初始连接到Kubernetes Pod的直接流量

问题描述 投票:0回答:1

我想将流量从Kubernetes中的负载均衡器引导到部署。但是,我不想在部署的所有Pod上实现均匀的负载,而是希望与特定Pod的每个连接都保持连接。我将GRPC请求发送到Pod上的有状态实例,并且将客户端的GRPC请求不发送到其他Pod至关重要。

我当前的实现可能不必要地复杂。这是伪代码:

  1. 使用自定义python调度程序初始化的集群。
  2. 创建了带有状态应用程序的多个Pod,每个Pod具有节点端口服务和唯一的节点端口。
  3. 客户端使用套接字接口与python调度程序对话,并为其分配了端口。
  4. 客户端使用分配的节点端口与吊舱对话。
  5. 客户端(或调度程序)终止容器。

我受到端口数量的限制,并且由于其节点端口限制而无法使用AKS引导流量。另外,尽管调度程序的优点是客户端可以请求各种资源的容器,但是测试和维护的工作量太大。

是否有更好的解决方案将外部流量定向到单个有状态的Pod?

kubernetes istio stateful
1个回答
0
投票

默认iptables服务代理实现使用非常简单的随机轮询算法来选择要使用的Pod。如果您使用IPVS实现,它确实提供了更多的选择,尽管在像AKS这样的托管提供程序上这不太可能是一个选择。因此,您可以使用支持gRPC的用户空间代理,例如Traefik或Istio Ingress。选择SO超出了SO的范围,但是大多数代理都支持某种形式的某种连接粘性。

© www.soinside.com 2019 - 2024. All rights reserved.