假设这种情况:
服务A(ClusterIP(:
- 播客1(图片1(
- 吊舱2(图片1(
- 吊舱3(图片1(
服务B(ClusterIP(:
- 播客1(图片2(
- 吊舱2(图片2(
- 吊舱3(图片2(
假设我有一个入口控制器:
/svcA>这将重定向到服务A/svcB>这将重定向到服务B
所以我的问题是,服务仍然在吊舱之间进行负载平衡?如果服务A的Pod1很忙,并且请求必须由服务A的波德2或波德3参与,该怎么办??谁在执行负载平衡?
谢谢!
它将进行负载平衡,但它不支持应用程序,因此,如果您的pod由于负载而无法处理请求,则请求将丢失或返回错误。您可以使用readyness探测器将pod标记为未就绪,在这种情况下,它们将不会接收到流量
一个名为kube-proxy
的Kubernetes基础设施为ClusterIP服务(以及从集群内部调用的NodePort和LoadBalancer服务(提供负载平衡。实际的负载平衡取决于集群配置,但通常并不智能;典型的开箱即用设置将使用循环或随机路由。Kubernetes文档中关于虚拟IP和服务代理的部分对此进行了更详细的讨论。
如果poddeployment-a-pod-1
太忙,无法处理请求,那么三分之一的service-a
请求将超时。如果这个囤积还影响了您用于liveness探测的HTTP请求,那么它最终将导致pod重新启动,并且与该特定pod的任何未完成连接都将丢失。在这两种情况下,客户端都必须重试受影响的请求。