Назад | Перейти на главную страницу

Как балансировка нагрузки / VIP работает с оверлейными сетями?

Я пытаюсь понять, как встроенная балансировка нагрузки Docker / VIP работает с оверлейными сетями. Чтобы лучше объяснить, как я это понимаю, я составил диаграмму. Я надеюсь, что кто-то сможет подтвердить или опровергнуть мое понимание.

Допустим, у меня в Docker Swarm запущены две службы: webserver и api. Обе эти две службы масштабированы до двух экземпляров. Эти экземпляры работают на УЗЕЛ А и УЗЕЛ B.

  1. Кто-то в мире делает запрос, который каким-то образом попадает УЗЕЛ А.
  2. iptables на УЗЕЛ А воля DNAT запрос к ingress-sbox на УЗЕЛ А.
  3. В ingress-sbox (давайте просто рассматривать это как черный ящик) решает, что запрос должен идти на веб-сервер на УЗЕЛ B.
  4. В ingress-sbox отправляет запрос на оверлейный сетевой мост "api", и запрос маршрутизируется через vxlan туннель к оверлейному сетевому мосту "api" на УЗЕЛ B.
  5. Контейнер веб-сервера на УЗЕЛ B получает запрос через оверлейный сетевой мост api.

Это справедливое понимание того, как входящие запросы будут проходить через оверлейную сеть?

... и дополнительный вопрос; что происходит, когда запрос идет от webserver к api через балансировщик нагрузки (ingress-sbox). Запросы всегда будут балансировать нагрузку через ingress-sbox на том же хосте, откуда исходит запрос? Если это так, я предполагаю, что это означает, что запрос к служебному VIP всегда перенаправляется на ingress-sbox который работает на том же узле, откуда сделан запрос?