Я пытаюсь подключить свои службы докеров вместе в рое докеров.
сеть состоит из 2 малиновых пи.
я могу создать оверлейную сеть под названием test-overlay
, и я вижу, что службы на любом узле Raspberry Pi могут подключаться к сети.
моя проблема:
Я не могу подключиться к службам между узлами с оверлейной сетью.
учитывая следующую конфигурацию узлов и служб, service1
может использовать адрес http://service2
для подключения к service2
. но это НЕ работает для http://service3
. однако http://service3
доступен из service4
.
node1:
- service1
- service2
node2:
- service3
- service4
Я новичок в Docker Swarm, и любая помощь приветствуется.
проверка наложения
Я выполнил команду sudo docker inspect network test-overlay
на обоих узлах.
на главном узле это возвращает следующее:
[
{
"Name": "test-overlay",
"Id": "skxhz8sb3f82dhh9jt9t3j5yl",
"Created": "2018-04-15T20:31:20.629719732Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.0.0/24",
"Gateway": "10.0.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"3acb436a0cc9a4d584d537edb1546988d334afa4793cc4fae4dd6ac9b48828ea": {
"Name": "docker-registry.1.la1myuodpkq0x5h39pqo6lt7f",
"EndpointID": "66887fb1f5f253c6cbec149aa51ab85168903fdd2290719f26d2bcd8d6c68dc8",
"MacAddress": "02:42:0a:00:00:04",
"IPv4Address": "10.0.0.4/24",
"IPv6Address": ""
},
"786e1fee538f81fe41ccd082800c646a0e191b0fd912e5c15530e61c248e81ac": {
"Name": "portainer.1.qyvvlcdqo5sewuku3eiykaplz",
"EndpointID": "0d29e5452c208ed637ae2e7dcec026f39d2431e8e0e20765a9e0e6d6dfdc60ca",
"MacAddress": "02:42:0a:00:00:15",
"IPv4Address": "10.0.0.21/24",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4101"
},
"Labels": {},
"Peers": [
{
"Name": "d049fc8f8ae1",
"IP": "192.168.1.2"
},
{
"Name": "6c0da128f308",
"IP": "192.168.1.3"
}
]
}
]
на рабочем узле это возвращает следующее:
[
{
"Name": "test-overlay",
"Id": "skxhz8sb3f82dhh9jt9t3j5yl",
"Created": "2018-04-20T14:04:57.870696195Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.0.0/24",
"Gateway": "10.0.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"4cb50161119e4b58a472e1b5c380c301bbb00a23fc99fc2e0712a8c4bde6d9d4": {
"Name": "minio.1.fo2su2quv8herbmnxqfi3g8w2",
"EndpointID": "3e85786304ed08f02c09b8e1ed6a153a3b4c2ef7afe503a1b0ca6cf341521645",
"MacAddress": "02:42:0a:00:00:d6",
"IPv4Address": "10.0.0.214/24",
"IPv6Address": ""
},
"ce99b3788a4f9438e276e0f52a8f4d29fa09179e3e93b31b14f45339ce3c5315": {
"Name": "load-balancer.1.j64h1eecsc05b7d397ejvedv3",
"EndpointID": "3b7e73d27fe30151f2dc2a0ba8a5afc7f74fd283159a03a592be10e297f58d51",
"MacAddress": "02:42:0a:00:00:d0",
"IPv4Address": "10.0.0.208/24",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4101"
},
"Labels": {},
"Peers": [
{
"Name": "d049fc8f8ae1",
"IP": "192.168.1.2"
},
{
"Name": "6c0da128f308",
"IP": "192.168.1.3"
}
]
}
]
docker node ls
- person Varcorb   schedule 13.04.2018node.role == worker
.sudo docker node ls
, как и ожидалось, возвращает таблицу с обоими узлами. - person X0r0N   schedule 13.04.2018docker network inspect test-overlay
отображается на обоих узлах? Особенно вPeers
иContainers
. - person Izydorr   schedule 20.04.2018Peers
перечислены на обоих узлах, но в разделеContainers
отображаются только контейнеры, работающие на этом конкретном узле. - person X0r0N   schedule 20.04.2018hosts
файле, который Portainer позволяет вам настраивать непосредственно в пользовательском интерфейсе (так что без монтирования тома). это не очень хорошее решение, но оно должно сработать. - person X0r0N   schedule 17.05.2018docker network inspect test-overlay -v
?-v
предоставит вам сетевую информацию по каждой из служб ... были случаи, когда служба была недоступна на 1 узле, но работала нормально для всех остальных. Эта команда должна помочь отладить это. - person Ryan Smith   schedule 27.06.2018