Openshift - 在同一命名空间内调用另一个 API

Openshift - calling another API within same namespace

我在同一个命名空间中有两个容器。服务 A 和服务 B。

在我的例子中,我想从服务 A 与服务 B 通话。通过 RestTemplate,我正在 post 调用如下所示的通信。

public Response fetchData(Request request) {
   return restTemplate.postForEntity("http://Service-B:8080/api", request, Response.class).getBody();
}

它在我较低的区域工作正常,因为我只有一个服务 B 的 POD。我的疑问是,如果我在生产中有更多 PODS(比如说三个 POD)来处理负载。如果我使用服务 url 而不是路由器 url,负载平衡会发生在 PODS 之间吗?

如果使用 kubernetes 服务,则 kube-proxy 组件通过 linux iptables 在 L4 层提供负载平衡。

IPVS 模式下的 Kube 代理 运行 提供最少的连接、位置、加权、基于持久性的负载平衡

Kube 代理运行 在用户空间或 iptables 模式下提供循环负载平衡

但是如果您需要在 L7 层进行高级负载平衡,那么您需要使用入口或路由器。

https://kubernetes.io/docs/concepts/services-networking/#the-gory-details-of-virtual-ips