正如发现的here一样,有一种新型的kube服务,即IPVS,具有许多用于负载平衡的算法。
唯一的问题是我没有找到指定这些算法的位置。
我的理解:
rr
:循环
->循环循环调用后端Pod lc
:最少连接
->将连接数最少的所有pod分组,然后向其发送消息。哪种联系?仅此服务中的服务? dh
:目标哈希值
->吗?基于网址的内容? sh:
源哈希
->吗?基于网址的内容? sed
:最短预期延迟
->后端的ping次数较少,或者后端过去响应的时间有些逻辑 nq
:从不排队
->是否与最少连接相同?但在某些时候拒绝消息? 如果有人拥有文档链接(official page中未提供,但仍然说IPVS是beta版本,而它是稳定的Sinc 1.11)或所有背后的真实算法,请提供帮助。
我尝试过:用官方文档中的+查找字词进行Google搜索。
答案 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
致谢