У меня очень странная проблема:
У меня кластер роя, и один из моих сервисов имеет неверный ip:
$ docker service inspect nginx_backend | grep Addr
"Addr": "10.0.0.107/24"
Из любого контейнера в кластере:
/ # ping nginx_backend
PING nginx_backend (10.0.0.107): 56 data bytes
64 bytes from 10.0.0.107: seq=0 ttl=64 time=0.057 ms
64 bytes from 10.0.0.107: seq=1 ttl=64 time=0.061 ms
64 bytes from 10.0.0.107: seq=2 ttl=64 time=0.064 ms
64 bytes from 10.0.0.107: seq=3 ttl=64 time=0.083 ms
^C
--- nginx_backend ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.057/0.066/0.083 ms
Но на сервере, на котором размещен контейнер nginx_backend
:
root@backend:~# docker inspect nginx_backend.1.myzy10psfdl9r4jljrsz5zd5t | grep IPv4
"IPv4Address": "10.0.0.87"
И когда какой-либо сервис пытается подключиться по имени, он получает ошибку соединения, но если я вручную помещаю запись, такую как 10.0.0.87 nginx_backend
в /etc/hosts
внутри контейнера установлено успешное соединение.
Что я сделал не так?)