#docker #docker-swarm
Вопрос:
У меня есть рой из трех узлов с главным узлом и несколькими запущенными стеками (все они совместно используют сеть). Время от времени приложения выходят из строя, не имея возможности разрешить внутренние DNS-имена. Они просто возвращаются к работе при обновлении службы, которая не смогла разрешить это имя.
Службы используют общую сеть:
networks:
traefik-public:
external: true
Используя inspect, созданная сеть показывает:
[
{
"Name": "traefik-public",
"Id": "hwtew3nwv25f0hnpihozekude",
"Created": "2021-03-29T21:35:15.564221398 02:00",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.7.0/24",
"Gateway": "10.0.7.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0d110ab118c41eef958553d8d9c8970034ee346b481c1ccd520e3a1ed49297fa": {
"Name": "minion_minion_mysql.1.b6mq8432g5b0srabg73lk833q",
"EndpointID": "0f363678f9c419475918d83c6b69b065a28b17040b34c696e7b630bebbf30402",
"MacAddress": "02:42:0a:00:07:79",
"IPv4Address": "10.0.7.121/24",
"IPv6Address": ""
},
"3b1321643a2c7660a678591f3ed74b7facd338a9ab5c29ede63f188e35e016ba": {
"Name": "minion_minion_ui.1.9e9cqqbvzuv2rf4e13f7cwbty",
"EndpointID": "ad58ff109bf74387cef8f6a537a7e8be20dc7c239ea17a888e486c45fd3641cb",
"MacAddress": "02:42:0a:00:07:77",
"IPv4Address": "10.0.7.119/24",
"IPv6Address": ""
},
"63590dafe7978133f114a53ed6816d73e9bd18f81778d6f9a169f13ae2bb2462": {
"Name": "swarmpit_app.1.xalzfuq9mbg7t6k4w0x3bspu7",
"EndpointID": "b4b0716458b0b77882b4cd5220fef8ab667683c4ffc1f1d9992a0c1845f8041f",
"MacAddress": "02:42:0a:00:07:f3",
"IPv4Address": "10.0.7.243/24",
"IPv6Address": ""
},
"91e9ff38ed632d8290a9288026af719486b86f5bf2cd612e39fcbfb5aea13cc3": {
"Name": "minio_minio1.1.ozqa8faxgp07c6ubon6xq3bwj",
"EndpointID": "9edacf297796afda9bce22d47a635c0f87d974faeda2ae21112bde3927853949",
"MacAddress": "02:42:0a:00:07:2b",
"IPv4Address": "10.0.7.43/24",
"IPv6Address": ""
},
"d0944d673c2a0eda051a16822a0f301973f98efb8ac0d9f140993306e859a562": {
"Name": "mediadb_mediadb_anc.1.xbq9wnk84cii7bvzjt2968k7a",
"EndpointID": "9cfc100ccec631b134accc0f3dabf1d28009819318710a028ab9b471b440f3dc",
"MacAddress": "02:42:0a:00:07:46",
"IPv4Address": "10.0.7.70/24",
"IPv6Address": ""
},
"e6b84654afede231cd9e52573082c312b3c89d31c3ce34c605be944c3147e1cd": {
"Name": "traefik_traefik.1.rf0hmr3dyh2l3y6iyt3ysry5t",
"EndpointID": "2a3066d76c42fdee6871b9fce19917a6ad9e363c11e94bf23f5f1f6fb033e445",
"MacAddress": "02:42:0a:00:07:f5",
"IPv4Address": "10.0.7.245/24",
"IPv6Address": ""
},
"f8af470ce571cf7a6b3cf90408eb1ba40721fa930b820dd74d4d1840d49b84d6": {
"Name": "mediadb_mediadb_amo.1.egtd13w29iqzjm1tl4mebpynd",
"EndpointID": "9fa4bf4543d1866ff82f95ee3912744fba156a3127dbe0c54b94919eddbadcd1",
"MacAddress": "02:42:0a:00:07:f7",
"IPv4Address": "10.0.7.247/24",
"IPv6Address": ""
},
"lb-traefik-public": {
"Name": "traefik-public-endpoint",
"EndpointID": "04846d313ae4772083066dd4b0fad7b71538ea496b02624da8317608374c6481",
"MacAddress": "02:42:0a:00:07:df",
"IPv4Address": "10.0.7.223/24",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4101"
},
"Labels": {},
"Peers": [
{
"Name": "70731e7a2f28",
"IP": "192.168.133.101"
},
{
"Name": "d4ef9d5dd73f",
"IP": "192.168.133.102"
},
{
"Name": "62b8966e8aca",
"IP": "192.168.133.103"
}
]
}
]
Я запускаю docker версии 20.10.5, работающий на коробке Fedora.
Любая идея о том, как исправить эти проблемы или как их отладить, приветствуется.
Ответ №1:
Ваши службы, скорее всего, кэшируют DNS. Лучше всего уменьшить или удалить кэширование DNS для вашей службы.
Комментарии:
1. Службы работают в течение длительного времени, и их IP-адрес не должен меняться, поэтому я не совсем понимаю, в чем может быть проблема. Не могли бы вы дать несколько советов? Спасибо