Docker Swarm Networking между различными регионами?
Контейнеры, связанные одной оверлейной сетью могут общаться только в одном географическом регионе, но, когда необходимо отправить сетевой запрос на контейнер в другой регион, происходит ошибка: no route to host. Как решить эту проблему ?
Сеть Docker Swarm между разными регионами может быть достигнута с помощью VPN или оверлейной сети VXLAN. Которая позволяет безопасно туннелировать трафик между регионами, позволяя контейнерам взаимодействовать друг с другом, как если бы они находились в одной сети.
Другой вариант — использовать сервисную сетку, такую как Istio или Linkerd, которая обеспечивает управление трафиком, обнаружение сервисов и балансировку нагрузки в нескольких регионах. Он также позволяет настраивать политики маршрутизации трафика между регионами.
Кроме того, вы можете использовать глобальный балансировщик нагрузки, такой как AWS Global Accelerator или Azure Global VNet Peering, для подключения кластеров swarm в разных регионах.
Docker Swarm использует драйвер overlay network для создания сетей с несколькими хостами, которые можно использовать для подключения контейнеров, работающих на разных хостах.
Чтобы создать оверлейную сеть VXLAN в Docker Swarm, вам нужно создать файл спецификации сети, а затем использовать команду docker network create для создания сети.
Файл спецификации сети должен содержать параметр --driver, установленный на overlay, и параметр --opt, установленный на com.docker.network.driver.overlay.vxlanid_list с желаемым диапазоном идентификаторов VXLAN.
Как только сеть создана, вы можете подключить к ней контейнеры, используя параметр --network с помощью команды docker run.
Александр, У меня есть поднятый docker-registry, как worker ноды смогут стянуть образ оттуда ? В одном регионе всё работает, но в разных нет. Простите за мою некомпетентность в вопросах сетевой адресации. Я предполагаю, что между серверами необходимо настроить какую-то виртуальную сеть, чтобы Docker Swarm работал так, как я задумываю -- во всех регионах.