Как общаться между сервисами в Kubernetes из вне?
Имеется следующая проблема: Есть сайт example.com, с которого идет обращение на различные endpointы (api.example.com, search.example.com и т.п). у example.com и api.example.com, search.example.com одна и та же A запись, которая перенаправляет на балансировщик, который в свою очередь перенаправляет на внутренний адрес kubernetes + NodePort ingress контроллера.
Все это дело крутится на одном кластере кубернетес, только в разных неймспейсах. каждый имеет сервис и свой ингресс. Сейчас эти сервисы торчат наружу и общение происходит через вышеуказанные endpointы. Т.е сейчас при обращении на api.example.com мы обращаемся к endpointу через внешний адрес, попадаем на балансировщик, оттуда на ingress и оттуда уже на нужный сервис. Скорость при этом жуткая и работает это медленно и еще смущает что endpointы открыты всему миру. Вопрос в следующем: как закрыть эти endpointы снаружи, и заставить frontend приложения общаться по внутренним именам сервиса (servicename.svc.cluster.local)? Как обычно и правильно организовывают общение между frontend и различных backend сервисов?