Kubernetes服务:IPVS负载均衡算法

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

正如发现的here,有一种新的kube服务是IPVS并且有许多用于负载平衡的算法。

唯一的问题是我没有找到指定这些算法的位置。

我的理解:

  1. rr:round-robin - >在一个循环中一个接一个地调用后端pod
  2. lc:最少连接 - >将具有最低连接数的所有pod分组,并向其发送消息。哪种联系?只有来自这项服务的人?
  3. dh:目的地哈希 - >?基于网址的东西?
  4. sh:源哈希 - >?基于url的东西?
  5. sed:最短的预期延迟 - >后端用较少的ping或一些逻辑在后端响应过去的时间
  6. nq:从不排队 - >最少连接?但在某些方面拒绝消息?

如果有人有文档链接(official page中没有提供,仍然说IPVS是beta,而它是稳定的sinc 1.11)或所有这些背后的真实算法,请帮助。

我试过:谷歌搜索官方文档中的条款+查找。

kubernetes google-kubernetes-engine kubectl
1个回答
2
投票

它们在代码https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/apis/config/types.go#L193中定义

  • rr循环法:在可用的真实服务器之间平均分配工作
  • lc最少连接:将更多作业分配给具有较少活动作业的真实服务器
  • sh源哈希:通过按源IP地址查找静态分配的哈希表,将作业分配给服务器
  • dh目标哈希:通过按目标IP地址查找静态分配的哈希表,将作业分配给服务器
  • sed最短预期延迟:以最短的预期延迟将传入的作业分配给服务器。如果发送到第i个服务器,作业将经历的预期延迟是(Ci + 1)/ Ui,其中Ci是第i个服务器上的作业数,Ui是第i个服务器的固定服务速率(权重)。
  • nq从不排队:如果存在,则将传入的作业分配给空闲服务器,而不是等待快速服务器;如果所有服务器都忙,则采用ShortestExpectedDelay策略来分配作业。

所有这些都来自IPVS官方文档:http://www.linuxvirtualserver.org/docs/scheduling.html

问候

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