У меня проблема с моей текущей настройкой k8s. В процессе производства я раскручиваю три копии каждой из наших служб и помещаю их в пакет. Когда капсулы разговаривают друг с другом, мы бы хотели, чтобы капсулы разговаривали с каждым контейнером в капсуле. К сожалению, соединение между модулями никогда не прерывается благодаря поддержке TLS - и мы не хотим специально изменять эту часть - но мы хотим, чтобы каждый контейнер в модуле взаимодействовал должным образом. Это то, что мы имеем сейчас:
![How Services Talk](https://i.stack.imgur.com/DJ37b.jpg)
Если API пытается связаться, скажем, с OSS-модулем, он будет взаимодействовать только с первым контейнером. Я хочу, чтобы API мог общаться со всеми тремя по кругу.
Как мне это сделать? Я понимаю, что мне понадобится Ingress Controller, например, nginx. Но есть ли какой-то реальный учебник, который ломает, как я могу достичь этого? Я не уверен и немного новичок в k8s. Любая помощь будет необходима!
Кстати, я работаю локально над миникубом.
Edit:
В процессе производства мы раскручиваем три копии каждого сервиса. Когда службе A
необходимо обратиться к службе B
, выбирается модуль B1
из службы B
, который управляет любым полученным запросом. Однако этот модуль B1
становится единственным модулем из службы B
, который обрабатывает любое сообщение; другими словами, стручкам B2
и B3
никогда не говорят. Я пытаюсь решить эту проблему с помощью nginx, потому что кажется, что нам нужен балансировщик нагрузки, чтобы помочь с этим, но я не уверен, как это сделать. Кто-нибудь может дать подробное объяснение того, что нужно сделать? В частности, как я могу настроить nginx с моими службами, чтобы все модули использовались в службе (каким-то образом), в отличие от того, что происходит сейчас, когда используется только один модуль? Это проблема, потому что в производстве один модуль перегружен запросами и умирает, когда у нас есть два других модуля, которые ничего не делают. Я локально развиваюсь на миникубе.