Kubernetes 服务:IPVS 负载均衡算法
Kubernetes Service: IPVS load balancing algorithm
发现here,有一种新的kube服务是IPVS,有很多负载均衡算法。
唯一的问题是我没有找到指定这些算法的位置。
我的理解:
rr
:循环
->循环调用后端pod
lc
: 最少连接
-> 将所有连接数最少的 pod 分组,并向其发送消息。哪种连接?只有来自此服务的那些?
dh
:目标散列
-> ?基于 url? 的东西
sh:
源哈希
-> ?基于 url? 的东西
sed
:最短的预期延迟
-> ping 较少的后端或后端过去响应时间的一些逻辑
nq
: 从不排队
-> 与最少连接相同?但在某些时候拒绝消息?
如果有人有文档 link(未在 official page 中提供并且仍然说 IPVS 是测试版,而它是稳定同步 1.11)或所有这些文档背后的真实算法,请提供帮助。
我试过:Google在官方文档中使用术语搜索+查找。
它们在代码中定义
https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/apis/config/types.go#L193
rr
round robin : 在可用的真实服务器之间平均分配作业
lc
最少连接 : 将更多作业分配给活动作业较少的真实服务器
sh
source hashing : 通过查找静态分配的 hash table 通过它们的源 IP 地址 将作业分配给服务器
dh
目标散列 : 通过根据目标 IP 地址 查找静态分配的散列 table 来将作业分配给服务器
sed
最短预期延迟 :将传入作业分配给具有最短预期延迟的服务器。如果发送到第 i 个服务器,作业将经历的预期延迟为 (Ci + 1) / Ui,其中 Ci 是第 i 个服务器上的作业数,Ui是第i台服务器的固定服务率(权重)。
nq
never queue : 如果有空闲服务器,则将传入作业分配给空闲服务器,而不是等待快速作业;如果所有服务器都忙,则采用 ShortestExpectedDelay 策略分配作业。
全部来自IPVS官方文档:http://www.linuxvirtualserver.org/docs/scheduling.html
此致
发现here,有一种新的kube服务是IPVS,有很多负载均衡算法。
唯一的问题是我没有找到指定这些算法的位置。
我的理解:
rr
:循环 ->循环调用后端podlc
: 最少连接 -> 将所有连接数最少的 pod 分组,并向其发送消息。哪种连接?只有来自此服务的那些?dh
:目标散列 -> ?基于 url? 的东西
sh:
源哈希 -> ?基于 url? 的东西
sed
:最短的预期延迟 -> ping 较少的后端或后端过去响应时间的一些逻辑nq
: 从不排队 -> 与最少连接相同?但在某些时候拒绝消息?
如果有人有文档 link(未在 official page 中提供并且仍然说 IPVS 是测试版,而它是稳定同步 1.11)或所有这些文档背后的真实算法,请提供帮助。
我试过:Google在官方文档中使用术语搜索+查找。
它们在代码中定义 https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/apis/config/types.go#L193
rr
round robin : 在可用的真实服务器之间平均分配作业lc
最少连接 : 将更多作业分配给活动作业较少的真实服务器sh
source hashing : 通过查找静态分配的 hash table 通过它们的源 IP 地址 将作业分配给服务器
dh
目标散列 : 通过根据目标 IP 地址 查找静态分配的散列 table 来将作业分配给服务器
sed
最短预期延迟 :将传入作业分配给具有最短预期延迟的服务器。如果发送到第 i 个服务器,作业将经历的预期延迟为 (Ci + 1) / Ui,其中 Ci 是第 i 个服务器上的作业数,Ui是第i台服务器的固定服务率(权重)。nq
never queue : 如果有空闲服务器,则将传入作业分配给空闲服务器,而不是等待快速作业;如果所有服务器都忙,则采用 ShortestExpectedDelay 策略分配作业。
全部来自IPVS官方文档:http://www.linuxvirtualserver.org/docs/scheduling.html
此致