繁体   English   中英

在 Azure Kube.netes 服务 (AKS) 中,我有一个类型为“ClusterIP”的服务,它是否在内部执行 pod 的负载平衡?

[英]In Azure Kubernetes Service (AKS) I have a Service of type "ClusterIP", does it perform the pod's load balancing internally?

假设这种情况:

服务 A(集群 IP):

  • Pod1(图 1)
  • Pod2(图 1)
  • Pod3(图 1)

服务 B(集群 IP):

  • Pod1(图 2)
  • Pod2(图 2)
  • Pod3(图 2)

假设我有一个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM