В настоящее время я пытаюсь создать сеть роев docker через хосты. У нас есть два разных сетевых сайта, и один из них является закрытой и частной сетью. На этом закрытом сайте есть только один опубликованный c IP, назначенный нам, и хосты на этом сайте имеют частные IP-адреса. Хосты в другом сетевом сайте имеют собственный опубликованный c IP-адрес для каждого хоста, поэтому проблем не возникает.
Я хочу подключить хосты в закрытом сетевом сайте (называемые внутренними хостами) и хосты, которые имеют их собственные публичные c IP-адреса (называемые внешними хостами).
Потому что только один публичный c IP назначен нам для закрытых сетевой сайт, я установил этот publi c IP назначенный один внутренний хост в закрытом сетевом сайте, и этот хост стал docker менеджером роя. Затем внутренние хосты подключились к сети swarm с использованием внутреннего IP-адреса хоста менеджера swarm, а внешние хосты присоединились с использованием IP-адреса publi c.
Например, во внутренних хостах:
docker swarm join --token ... 172.0.12.12:2377
и на внешних хостах:
docker swarm join --token ... 123.123.123.123:2377
Соединение было успешно выполнено, и я смог правильно распознать все узлы в менеджере роя с помощью команды docker node ls
. Однако когда я создаю оверлейную сеть, эта сеть распознается на внешних хостах, но не на внутренних хостах. Итак, когда я создал контейнер на внешнем хосте и попытался пропинговать с внутреннего хоста, он не прошел.
Это неправильный путь? Или я должен что-то проверить? Любые идеи будут очень полезны. Спасибо!