[英]In Azure Kubernetes Service (AKS) I have a Service of type "ClusterIP", does it perform the pod's load balancing internally?
假设这种情况:
服务 A(集群 IP):
服务 B(集群 IP):
假设我有一个 Ingress Controller:
/svcA > 这将重定向到服务 A /svcB > 这将重定向到服务 B
所以我的问题是,该服务仍在 pod 之间进行负载平衡? 如果服务 A 的 Pod1 繁忙并且请求必须由服务 A 的 Pod2 或 Pod3 参加怎么办? 谁在执行负载平衡?
谢谢!
它将进行负载平衡,但它不是应用程序感知的,因此如果您的 pod 由于负载而无法处理请求,请求将丢失或返回错误。 您可以使用就绪探测器将 pod 标记为未就绪,在这种情况下它们将不会接收流量
一个名为kube-proxy
的 Kube.netes 基础设施为 ClusterIP 服务(以及从集群内部调用时的 NodePort 和 LoadBalancer 服务)提供负载平衡。 实际负载均衡取决于集群配置,但通常不是智能的; 典型的开箱即用设置将使用循环或随机路由。 Kube.netes 文档中有关虚拟 IP 和服务代理的部分对此进行了更详细的讨论。
如果 pod deployment-a-pod-1
太忙以至于无法处理请求,则三分之一的请求service-a
将超时。 如果此积压还影响您用于活动探测的 HTTP 请求,它最终将导致 pod 重新启动,并且与该特定 pod 的所有未完成连接都将丢失。 在这两种情况下,客户端都必须重试受影响的请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.