2016-07-29 107 views
0

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

回答

1

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

+0

谢谢。我也在这个方向思考。我会检查您在其他案例的评论中提到的内容 – user5396668

0

就你而言,每个节点都将运行一个服务副本 - 并在整个节点间实现负载平衡。