Kubernetes 如果我有一个公共负载平衡器,那么直接服务到服务通信如何实现负载平衡?
所以从Kubernetes 如果我有一个公共负载平衡器,那么直接服务到服务通信如何实现负载平衡?,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,所以从service1,我可以用http://service2:8082,但由于这不是通过UI->load balancer完成的,如何实现负载平衡?我是否应该不直接调用service2,而是通过mydomain.com/service2调用它,这样它就必须通过流?如果您通过入口,这意味着直接调用http://service2:8082从service1中,Kubernetes将根据默认值选择一个随机后端 如果您正在使用类似的工具,则可以对此进行更多的调整。例如,建立循环制 如果您只想循环,也可
service1
,我可以用http://service2:8082
,但由于这不是通过UI->load balancer完成的,如何实现负载平衡?我是否应该不直接调用service2
,而是通过mydomain.com/service2
调用它,这样它就必须通过流?如果您通过入口,这意味着直接调用http://service2:8082
从service1
中,Kubernetes将根据默认值选择一个随机后端
如果您正在使用类似的工具,则可以对此进行更多的调整。例如,建立循环制
如果您只想循环,也可以使用旧的
所有这些选项都可以使用kube代理上的标志进行配置。从另一个服务调用服务将命中节点上的iptable路由,并选择要将流量路由到的服务端点。这会更快
如果您通过mydomain.com/service2调用它,那么流将通过额外的L7入口,速度将相对较慢。因此,我似乎有一个选择。现在,如果我的入口上有其他功能,例如附加了某种身份验证,该怎么办?在这种情况下,我可能应该通过mydomain.com/service2调用它,这样身份验证就可以工作了,是吗?是的。可以使用nginx或Traefik之类的工具实现的附加功能。
|--> service1:8081 --> pod1-a, pod1-b, pod1-c
UI -> load balancer -> ingress (mydomain.com)
|--> service2:8082 --> pod2-a, pod2-b, pod2-c