Как балансировка нагрузки / VIP работает с оверлейными сетями?
Я пытаюсь понять, как встроенный Docker балансировки нагрузки / VIP работает с оверлейными сетями. Чтобы лучше объяснить, как я это понимаю, я составил диаграмму. Я надеюсь, что кто-то может подтвердить или отклонить мое понимание.
Допустим, у меня в Docker Swarm работают две службы: webserver
а также api
, Обе эти две службы были масштабированы до двух экземпляров. Эти экземпляры выполняются на узлах A и B.
- Кто-то в мире делает запрос, который так или иначе поражает УЗЕЛ А.
iptables
на УЗЕ А будетDNAT
запрос к ingress-sbox на УЗЕЛ A.-
ingress-sbox
(давайте просто рассмотрим это как черный ящик) решает, что запрос должен идти к веб-серверу на узле B. -
ingress-sbox
отправляет запрос по наложенному сетевому мосту "api", и запрос направляется черезvxlan
туннель к наложенному сетевому мосту "api" на узле B. - Контейнер веб-сервера на узле B получает запрос через оверлейный сетевой мост "api".
Это правильное понимание того, как входящие запросы будут проходить через оверлейную сеть?
... и дополнительный вопрос; что происходит, когда запрос поступает от webserver
в api
через балансировщик нагрузки ( ingress-sbox
). Будут ли запросы всегда сбалансированы по нагрузке ingress-sbox
на том же хосте, откуда исходит запрос? Если это так, я предполагаю, что это означает, что запрос к VIP службы всегда направляется на ingress-sbox
который работает на том же узле, что и запрос?