Екі сайттағы үш менеджер мен бес жұмысшы туннельмен қосылған, және docker service ls екі жақта да жұмыс істеп жатқан тапсырмаларды көрсетеді, ал қызметтер арасындағы шақырулар уақыты бітеді. Swarm журналдарында ешнәрсе дұрыс емес көрінбейді. Бұл үйлесім деректер жазықтығы мәселесінің белгісі: басқару жазықтығы түйіндерді тапты, ал қапталған кадрлар жолды ешқашан жүріп өтпеді.

Желі overlay-дан бұрын болуы керек

Swarm overlay-ы қапталған кадрларды түйін мекенжайларының арасына тікелей жібереді, яғни әр түйінге кез келген басқа түйін аудармасыз жете алатын мекенжай керек, туннель ұсынатын интерфейсте. Клиенттерді тек жарияланған портқа жеткізетін туннель жеткіліксіз. Төменгі қабат екі бағытта да түйіннен түйінге маршруттауы керек.

Мұны Swarm-ға тиіспес бұрын тексеріңіз. Әр түйіннен серіктестің туннель мекенжайына маршрутты тексеріңіз, оған ping жасаңыз, содан кейін басқару портын тексеріңіз. Егер ping жұмыс істеп, порт істемесе, туннель дұрыс және жолда сүзгі тұр.

ip -brief address
ip route get 10.20.0.12
ping -c3 10.20.0.12
nc -vz 10.20.0.12 2377

Егер маршрут tun0 немесе wg0 орнына физикалық интерфейсті көрсетсе, overlay алыс сайт жете алмайтын мекенжайға қаптайды, ал симптом пакет жоғалтуына ұқсайды.

Әр түйіннің қандай мекенжайды жариялайтынын тексеріңіз

Демон бір мекенжайды жариялайды, ал серіктестер оны деректер жазықтығы үшін пайдаланады. Көпжелілі хостта LAN немесе жария мекенжайды жариялау оңай, ал туннель басқа нәрсені тасымалдайды. Болжаудың орнына оны тексеріңіз және әдепкі мән қате болса, қосылу кезінде --advertise-addr көмегімен бекітіңіз. Тек өзі жете алатын мекенжайды жариялаған түйін бәрібір swarm-ға қосылады, ал ақау кейін сайттар арасында сөйлесе алмайтын қызметтер түрінде көрінеді.

Жарияланған мекенжайды кейін өзгерту конфигурацияны өңдеу емес, өйткені түйін шығып, қайта қосылуы керек.

Әр түйіннің жарияланған мекенжайын жазбаларыңызға жазып қойыңыз, өйткені ол асимметриялық ақаулардың көбін түсіндіреді.

Masquerade — әдеттегі кінәлі

Түйіндер мен туннель арасында қақпа тұрғанда, жиі кездесетін қате — физикалық интерфейстен шығатынның бәріне masquerade қолдану. Бұл overlay-дың ішкі мекенжайларын да қайта жазады, сондықтан әр серіктес қақпадан келгендей көрінеді және VXLAN серіктестері бір-бірін тануды тоқтатады. Нәтижесі — қарапайым ping жұмыс істеп тұрғанда жоғалған немесе бір бағытты қапталған трафик.

overlay префиксін қақпа арқылы маршруттаңыз және оны аудармай қалдырыңыз. Егер аудару шынымен басқа префикс үшін қажет болса, оны сол жермен шектеңіз және ешқашан overlay пайдаланатын диапазонға қолданбаңыз.

ip route add 172.16.0.0/22 via 10.20.0.1
iptables -t nat -I POSTROUTING -o tun0 -s 172.16.0.0/22 -j ACCEPT

Ережелердің ретін де, мәтінін де тексеріңіз, өйткені тізбекте ерте тұрған кең MASQUERADE кешірек тұрған тар ерекшеліктен басым болады.

VXLAN-ға пакетте орын керек

VXLAN тасымалдайтын кадрларға 50 байт қосады. 1500 байттық төменгі қабат 1500 байттық ішкі кадрды тасымалдағанда, ешбір жол жеткізе алмайтын қапталған пакет пайда болады, ал ақау өлшем мәселесі емес, үзілісті қызмет табу сияқты көрінеді. Немесе екі ұшта туннельдің MTU-ын төмендетіңіз, немесе overlay-дың MTU-ын драйвер сыятын пайдалы жүктемені жариялайтындай етіп орнатыңыз.

docker network create --driver overlay --attachable --opt com.docker.network.driver.mtu=1400 swarm-overlay

ingress желісі автоматты түрде жасалады, сондықтан оны өзгерту — орнында өңдеу емес, жою және қайта жасау.

Туннельдің тек бір жағын түзетсеңіз, кіші MTU бәрібір маңызды болып қалады.

Журналдарды емес, деректер жазықтығын бақылаңыз

VXLAN портын екі ұшта түсіріп алыңыз. Бір жақтан шығып, екінші жаққа жеткен кадрлар төменгі қабаттың дұрыстығын және мәселенің overlay ішінде екенін білдіреді. Шығып, ешқашан жетпейтін кадрлар маршрут немесе сүзгіні білдіреді. Мүлдем шықпайтын кадрлар бастау мекенжайының қате екенін білдіреді.

Бірнеше секундтан кейін жоғалатын қызмет табу ақаулары әдетте пакет бюджетіне немесе тұрақсыз жолға сілтейді, raft кворумына емес.

Жұмыс істеп тұрған терезеден түсірілімді сақтаңыз, өйткені оны бүлінгенмен салыстыру конфигурацияны қайта оқудан жылдамырақ.

Қатысты мақалалар