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