Kubernetes Service:IPVS负载平衡算法

时间:2019-04-16 11:26:44

标签: kubernetes google-kubernetes-engine kubectl

正如发现的here一样,有一种新型的kube服务,即IPVS,具有许多用于负载平衡的算法。

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

我的理解:

  1. rr循环 ->循环循环调用后端Pod
  2. lc最少连接 ->将连接数最少的所有pod分组,然后向其发送消息。哪种联系?仅此服务中的服务?
  3. dh目标哈希值 ->吗?基于网址的内容?
  4. sh: 源哈希 ->吗?基于网址的内容?
  5. sed最短预期延迟 ->后端的ping次数较少,或者后端过去响应的时间有些逻辑
  6. nq从不排队 ->是否与最少连接相同?但在某些时候拒绝消息?

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

我尝试过:用官方文档中的+查找字词进行Google搜索。

1 个答案:

答案 0 :(得分: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

致谢