Здравствуйте! Информации много и я, либо ее правильно понял, либо нет
Мое видение коммуникаций.
У нас есть 3 участника, которые должны общаться:
Сервер1 прослушивает порт 8080, для него создан Demployment и сервис (svc1) типа ClusterIP, у сервиса поле порт установлено в 8080
Сервер2 необходимо подключится к серверу, чтобы выполнить какую-то работу, но клиент также принимает запросы на порту 7070, для него тоже создан Deployment, в env контейнера я передаю хост svc1 и порт 8080 чтобы подключиться к первому серверу. Дальше создаю сервис (svc2), типа ClusterIP с полем port 7070
Таким образом, 2 сервиса могут общаться (не знаю правильный ли это подход)
Далее еще один участник работы - сервер3, который в целом и должен принимать запросы от юзера и координировать работу, я создаю новый Deployment, в env контейнера передаю хост svc2, и порт 7070, чтобы подключиться ко серверу2. Сервер 3 прослушивает порт 6060, для него создан сервис (svc3) типа LoadBalancer, с полем порт 80, targetPort 6060 и именем сервиса (пусть будет gateway).
Далее, я создаю Ingress, который ссылается на сервис svc3 по имени gateway и у него в правилах будет что-то такое
backend:
serviceName: gateway
servicePort: 80
Я правильно понимаю происходящее или нет? Или что-то упускаю. Извиняюсь заранее за такой, для кого-то глупый вопрос.
Вы бы лучше yaml сразу выкладывали что б понятней было.
В принципе все верно. Не обязательно сервисам давать уникальные порты.
Если у вас гугл клауд или авс то поидее не обязательно создавать ингресс. Сервис с типом LoadBalancer будет достаточно.