Þrír stjórnendur og fimm verkamenn á tveimur stöðum, tengdir með göngum, og docker service ls sýnir verk sem ganga á báðum hliðum meðan köll milli þjónustna falla á tíma. Ekkert í Swarm-skýrslum virðist rangt. Þessi samsetning er einkenni vandamáls í gagnasléttunni: stjórnsléttin fann hnútana, og umbúðuðu rammarnir fóru aldrei ferðina.

Netið verður að vera til áður en overlay-ið er það

Overlay Swarm ýtir umbúðuðum rammum beint milli hnútafanga, sem þýðir að hver hnútur þarf netfang sem hver annar hnútur getur náð án þýðingar, á því viðmóti sem göngin bjóða. Göng sem flytja aðeins biðlara að útgefnu porti eru ekki nóg. Neðri lagið verður að beina frá hnút til hnúts í báðar áttir.

Prófaðu það áður en þú snertir Swarm. Frá hverjum hnút, athugaðu leiðina að göngufangi jafningja, pingaðu hana og prófaðu svo stjórnportið. Ef ping virkar og portið ekki, eru göngin í lagi og síur er í vegi.

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

Ef leiðin bendir á líkamlega viðmótið í stað tun0 eða wg0, mun overlay-ið umbúða á netfang sem fjarlægi staðurinn nær ekki, og einkennin munu líta út eins og pakkatap.

Athugaðu hvaða netfang hver hnútur auglýsir

Dæmoninn auglýsir eitt netfang og jafningjar nota það fyrir gagnasléttuna. Á vél með margar netstillingar er auðvelt að auglýsa LAN- eða opinbert netfang meðan göngin flytja eitthvað annað. Skoðaðu það í stað þess að gera ráð fyrir því, og festu það við liðtöku með --advertise-addr þegar sjálfgefið er rangt. Hnútur sem auglýsir netfang sem aðeins hann nær til gengur samt í swarm, og bilunin kemur fram seinna sem þjónustur sem geta ekki talað milli staða.

Að breyta auglýstu netfangi seinna er ekki stillingarbreyting, því hnúturinn verður að fara út og koma aftur inn.

Skráðu auglýst netfang hvers hnúts í nóturnar, því það útskýrir flestar ósamhverfar bilanir.

Masquerade er venjulegi sökudólgurinn

Þegar gátt situr milli hnútanna og ganganna er algenga mistökið að beita masquerade á allt sem fer út líkamlega viðmótið. Það skrifar einnig innri netföng overlaysins, svo hver jafningi virðist koma frá gáttinni og VXLAN-jafningjar hætta að þekkja hver annan. Niðurstaðan er vantað eða einstefnu umbúðuð umferð meðan venjuleg ping virka enn.

Beindu forskeyti overlaysins í gegnum gáttina og láttu það óþýtt. Ef þýðing er raunverulega nauðsynleg fyrir annað forskeyti, takmarkaðu hana þar og aldrei við sviðið sem overlay-ið notar.

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

Athugaðu röð reglnanna sem og textann, því breitt MASQUERADE fyrr í keðjunni vinnur á þröngri undantekningu seinna.

VXLAN þarf pláss í pakkanum

VXLAN bætir 50 bæti við rammana sem það flytur. Neðra lag af 1500 bætum sem flytur innri ramma af 1500 bætum framleiðir umbúðaðan pakka sem engin leið kemur til skila, og bilunin lítur út eins og slitrótt þjónustuuppgötvun frekar en stærðarvandamál. Annaðhvort lækkaðu MTU ganganna á báðum endum eða stilltu MTU overlaysins þannig að bílstjórinn auglýsi nytsamlega hleðslu sem passar.

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

Ingress-netið er búið til sjálfkrafa, svo að breyta því þýðir að fjarlægja það og búa það til aftur í stað þess að breyta því á staðnum.

Ef þú lagar aðeins aðra hlið ganganna, er minna MTU-ið samt það sem skiptir máli.

Fylgstu með gagnasléttunni, ekki skýrslunum

Gríptu VXLAN-portið á báðum endum. Rammar sem fara frá annarri hliðinni og koma á hina þýða að neðra lagið sé í lagi og vandamálið sé inni í overlay-inu. Rammar sem fara og koma aldrei þýða leið eða síu. Rammar sem fara alls ekki þýða að upprunanetfangið sé rangt.

Þjónustuuppgötvunarbilanir sem hverfa eftir nokkrar sekúndur benda yfirleitt á pakkaáætlunina eða óstöðuga leið, ekki á raft-kvórum.

Geymdu grípið úr vinnandi glugga, því að bera það saman við bilaða er fljótlegra en að lesa stillingarnar aftur.

Tengdir greinar