Kolme manageria ja viisi työntekijää kahdella sivustolla, tunnelilla yhdistettyinä, ja docker service ls näyttää tehtäviä käynnissä molemmilla puolilla, kun taas palveluiden väliset kutsut aikakatkaistaan. Mikään Swarmin lokeissa ei näytä väärältä. Yhdistelmä on datatason ongelman tunnusmerkki: ohjaustaso löysi solmut, eivätkä kapseloidut kehykset koskaan tehneet matkaa.

Verhon on oltava olemassa ennen overlayta

Swarmin overlay työntää kapseloidut kehykset suoraan solmujen osoitteiden välillä, mikä tarkoittaa, että jokainen solmu tarvitsee osoitteen, johon jokainen toinen solmu pääsee ilman käännöstä, sillä rajapinnalla, jonka tunneli tarjoaa. Tunneli, joka kuljettaa vain asiakkaita julkaistuun porttiin, ei riitä. Alakerroksen on reititettävä solmusta solmuun molempiin suuntiin.

Testaa tämä ennen kuin kosket Swarmiin. Tarkista jokaisesta solmusta reitti vertaisparin tunneliosoitteeseen, pingaa se ja testaa sitten ohjausportti. Jos ping toimii eikä portti, tunneli on kunnossa ja jokin suodatin on tiellä.

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

Jos reitti osoittaa fyysiseen rajapintaan eikä tun0- tai wg0-rajapintaan, overlay kapseloi osoitteeseen, johon etäsivusto ei pääse, ja oire näyttää pakettihäviöltä.

Tarkista, minkä osoitteen kukin solmu ilmoittaa

Daemon ilmoittaa yhden osoitteen, ja vertaiset käyttävät sitä datatasoon. Moniverkkoisella isännällä on helppo ilmoittaa LAN- tai julkinen osoite, kun tunneli kuljettaa jotain muuta. Tarkastele se sen sijaan, että olettaisit, ja kiinnitä se liittymisvaiheessa valitsimella --advertise-addr, kun oletusarvo on väärä. Solmu, joka ilmoittaa osoitteen, johon vain se itse pääsee, liittyy silti swarmiin, ja vika ilmenee myöhemmin palveluina, jotka eivät voi puhua sivustojen välillä.

Ilmoitetun osoitteen muuttaminen myöhemmin ei ole kokoonpanon muokkaus, koska solmun on poistuttava ja liityttävä uudelleen.

Kirjaa ilmoitettu osoite solmukohtaisesti muistiinpanoihisi, sillä se selittää useimmat epäsymmetriset viat.

Masquerade on tavallinen syyllinen

Kun yhdyskäytävä on solmujen ja tunnelin välissä, tavallinen virhe on masquerade kaikelle, mikä lähtee fyysisestä rajapinnasta. Se kirjoittaa uudelleen myös overlayn sisäiset osoitteet, joten jokainen vertainen näyttää tulevan yhdyskäytävältä ja VXLAN-vertaiset lakkaavat tunnistamasta toisiaan. Tuloksena on puuttuva tai yksisuuntainen kapseloitu liikenne, kun tavalliset pingit toimivat edelleen.

Reititä overlayn etuliite yhdyskäytävän kautta ja jätä se kääntämättä. Jos käännös todella tarvitaan toiselle etuliitteelle, rajaa se sinne eikä koskaan alueelle, jota overlay käyttää.

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

Tarkista sääntöjen järjestys sekä sääntöteksti, koska ketjussa aiemmin oleva laaja MASQUERADE voittaa myöhemmän kapean poikkeuksen.

VXLAN tarvitsee tilaa paketissa

VXLAN lisää 50 tavua kuljettamiinsa kehyksiin. 1500 tavun alakerros, joka kuljettaa 1500 tavun sisäkehystä, tuottaa kapseloidun paketin, jota mikään polku ei toimita, ja vika näyttää ajoittaiselta palvelunetsinnältä eikä kokoproblemalta. Joko laske tunnelin MTU:ta molemmissa päissä tai aseta overlayn MTU niin, että ajuri ilmoittaa mahtuvan hyötykuorman.

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

Ingress-verkko luodaan automaattisesti, joten sen muuttaminen tarkoittaa poistamista ja uudelleen luomista eikä paikan päällä muokkaamista.

Jos korjaat vain tunnelin toisen pään, pienempi MTU on silti se, jolla on merkitystä.

Tarkkaile datatasoa, älä lokeja

Kaappaa VXLAN-portti molemmissa päissä. Kehykset, jotka lähtevät toiselta puolelta ja saapuvat toiselle, tarkoittavat, että alakerros on kunnossa ja ongelma on overlayn sisällä. Kehykset, jotka lähtevät eivätkä koskaan saavu, tarkoittavat reittiä tai suodatinta. Kehykset, jotka eivät lähde lainkaan, tarkoittavat, että lähdeosoite on väärä.

Palvelunetsinnän viat, jotka poistuvat muutaman sekunnin kuluttua, viittaavat yleensä pakettibudjettiin tai häilyvään polkuun, eivät raft-kvorumiin.

Säilytä kaappaus toimivasta ikkunasta, koska sen vertaaminen rikkinäiseen on nopeampaa kuin kokoonpanon uudelleen lukeminen.

Aiheeseen liittyvät artikkelit