Openshift - вызов другого API в том же пространстве имен
У меня есть два контейнера в одном пространстве имен. Сервис-А и Сервис-Б.
И в моем случае я хочу поговорить со службой B из службы A. Через RestTemplate я делаю почтовый звонок для общения, как показано ниже.
public Response fetchData(Request request) {
return restTemplate.postForEntity("http://Service-B:8080/api", request, Response.class).getBody();
}
Он отлично работает в моем нижнем регионе, так как у меня только один POD для Service-B. Я сомневаюсь, что у меня есть больше POD (скажем, три POD) в производстве для обработки нагрузки. Будет ли происходить балансировка нагрузки между PODS, если я использую URL-адрес службы вместо URL-адреса маршрутизатора?
1 ответ
При использовании сервиса kubernetes компонент kube-proxy обеспечивает балансировку нагрузки на уровне L4 через linux iptables.
Прокси-сервер Kube, работающий в режиме IPVS, обеспечивает наименьшее количество соединений, локальность, взвешенную и постоянную балансировку нагрузки.
Прокси-сервер Kube, работающий в режиме пользовательского пространства или iptables, обеспечивает циклическую балансировку нагрузки.
Но если вам нужна расширенная балансировка нагрузки на уровне L7, вам нужно использовать входящий трафик или маршрутизатор.