Kubernetes集群内部负载平衡

时间:2016-07-29 07:15:56

标签: load-balancing kubernetes

与Kubernetes(v1.3.2)玩一下我正在检查是否能够在群集内部进行负载均衡(3个内部部署的CentOS 7虚拟机)。
如果我正确理解http://kubernetes.io/docs/user-guide/services/'虚拟IP和服务代理'段落中的文档,并且正如我在测试中看到的那样,负载平衡是每个节点(VM)。即,如果我有一个由3个虚拟机组成的群集并部署了具有6个吊舱(每个虚拟机2个)的服务,则负载平衡将仅在同一虚拟机的吊舱之间,这在某种程度上令人失望。 至少这是我在测试中看到的:使用服务的ClusterIP从群集内调用服务,将在驻留在发送呼叫的同一VM中的2个pod之间进行负载平衡。 (顺便说一句,从群集中调用服务(使用NodePort)时也是如此,然后请求将在驻留在VM中的2个pod(请求目标IP地址)之间进行负载平衡。
以上是否正确?
如果是,我如何在所有6个副本之间进行内部群集调用负载平衡? (我必须为此使用像nginx这样的负载均衡器吗?)

2 个答案:

答案 0 :(得分:3)

不,声明不正确。负载均衡应该跨节点(VM)。这个demo证明了这一点。我在gce上有3个节点的k8s集群上运行了这个演示。它首先创建一个具有5个后端pod的服务,然后将其ssh到一个gce节点并访问service.ClusterIP,并将流量负载平衡到所有5个pod。 我看到你有另一个问题"不是每个pod独特的IP"打开,您似乎没有正确设置群集网络,这可能会导致您观察到的内容。

答案 1 :(得分:0)

在您的情况下,每个节点将运行服务的副本 - 并跨节点进行负载平衡。