如何使kube-proxy最终分配负载?

我有一个ClusterIP服务,用于在内部将负载分配到2个pod。 负载在pod上分布不均。

如何使负载均匀分布?

pp328397830 回答:如何使kube-proxy最终分配负载?

用户空间代理模式下的kube-proxy通过循环方式选择后端容器。

iptables模式下的

kube-proxy会随机选择后端pod。

,

Kubernetes使用iptables在Pod之间分配负载(默认为iptables proxy mode)。

如果您有2个吊舱,则以0.5(50%)的概率均匀分布。由于未使用轮询,因此后端Pod是随机选择的。甚至在更长的时间内。

如果有3个豆荚,则概率将更改为1/3(33%),对于4个豆荚则为1/4,依此类推。

要对其进行检查,可以运行sudo iptables-save

2个Pod的示例输出(对于Nginx服务):

sudo iptables-save | grep nginx

-A KUBE-NODEPORTS -p tcp -m comment --comment "default/nginx:" -m tcp --dport 31554 -j KUBE-SVC-4N57TFCL4MD7ZTDA    //KUBE-SVC-4N57TFCL4MD7ZTDA is a tag for nginx service

sudo iptables-save | grep KUBE-SVC-4N57TFCL4MD7ZTDA
-A KUBE-SVC-4N57TFCL4MD7ZTDA -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-SOWYYRHSSTWLCRDY

如果要确保使用循环算法平均分配负载,可以使用IPVS,默认情况下使用rr(循环)。它充当群集前面的负载平衡器,并将对基于TCP和UDP的服务的请求定向到真实服务器,并使真实服务器的服务在单个IP地址上显示为虚拟服务。它是supported在由local-up,kubeadm和GCE创建的群集上。

本文链接:https://www.f2er.com/2814068.html

大家都在问