Docker Swarm VPN bidez: atazek funtzionatzen dute, zerbitzuen deiak huts egiten dute
Atazak bi guneetan exekutatzen dira eta zerbitzuen arteko deiak iraungitzen dira. Overlayak nodoz nodoko ibilbideak, itzuli gabeko helbideak eta VXLANen 50 byteko tartea behar ditu.
Hiru kudeatzaile eta bost langile bi gunetan, tunel batez lotuta, eta docker service ls-ek bi aldeetan exekutatzen ari diren atazak erakusten ditu, zerbitzuen arteko deiak iraungi bitartean. Swarm-en erregistroetan ezer ez da okerrekoa ematen. Konbinazio hori datu-planoaren arazo baten sinadura da: kontrol-planoak nodoak aurkitu zituen, eta kapsulatutako markoek ez zuten bidaiarik egin.
Sarea overlayak baino lehen egon behar da
Swarm-en overlayak kapsulatutako markoak nodoen helbideen artean zuzenean bultzatzen ditu, hau da, nodo bakoitzak beste edozein nodok itzulpenik gabe iristeko moduko helbidea behar du, tunelak ematen duen interfazean. Bezeroak argitaratutako portu batera soilik eramaten dituen tunel bat ez da nahikoa. Beheko geruzak nodotik nodora bideratu behar du bi norabideetan.
Probatu hori Swarm ukitu aurretik. Nodo bakoitzetik, egiaztatu pare baten tunel-helbiderako ibilbidea, egin ping eta gero probatu kontrol-portua. Ping-ek funtzionatzen badu eta portuak ez, tunela ondo dago eta iragazki bat dago bidean.
ip -brief address
ip route get 10.20.0.12
ping -c3 10.20.0.12
nc -vz 10.20.0.12 2377
Ibilbideak tun0 edo wg0 ordez interfaze fisikoa erakusten badu, overlayak urruneko guneak iristen ez duen helbide batera kapsulatuko du, eta sintomak pakete-galera emango du.
Egiaztatu nodo bakoitzak zein helbide iragartzen duen
Daemonak helbide bat iragartzen du eta pareek datu-planerako erabiltzen dute. Sare anitzeko ostalari batean erraza da LAN edo helbide publikoa iragartzea, tunelak beste zerbait daraman bitartean. Ikuskatu ezazu, suposatu beharrean, eta itsatsi bat egiteko unean --advertise-addr-rekin lehenetsia okerra denean. Bere buruak soilik iristeko moduko helbidea iragartzen duen nodoa swarma batu ere egiten da, eta hutsegitea geroago agertzen da guneen artean hitz egin ezin duten zerbitzu gisa.
Iragarritako helbidea geroago aldatzea ez da konfigurazioaren edizioa, nodoak irten eta berriro batu behar duelako.
Idatzi nodo bakoitzeko iragarritako helbidea zure ohartarazpenetan, huts egite asimetriko gehienak azaltzen dituelako.
Masquerade da ohiko erruduna
Pasabide bat nodoen eta tunelaren artean dagoenean, ohiko akatsa interfaze fisikoan irteten den guztiari masquerade egitea da. Horrek overlayaren barneko helbideak ere berridazten ditu, beraz pare bakoitza pasabidetik datorrela ematen du eta VXLAN pareek elkar ezagutzeari uzten diote. Emaitza kapsulatutako trafiko galdua edo norabide bakarrekoa da, ping arruntek oraindik funtzionatzen duten bitartean.
Bideratu overlayaren aurrizkia pasabidearen bidez eta utzi itzuli gabe. Itzulpena benetan beharrezkoa bada beste aurrizki baterako, mugatu hara eta inoiz ez overlayak erabiltzen duen barrutira.
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
Egiaztatu arauen ordena eta testua ere, katean lehenagoko MASQUERADE zabal batek geroagoko salbuespen estu bat gainditzen duelako.
VXLANek tokia behar du paketean
VXLANek 50 byte gehitzen dizkie daramatzan markoei. 1500 byteko beheko geruzak 1500 byteko barne-markoa daramanean, inolako bidek entregatuko ez duen kapsulatutako paketea sortzen da, eta hutsegiteak zerbitzu-aurkikuntza tartekatua ematen du, tamaina-arazoa izan beharrean. Edo jaitsi tunelaren MTU bi muturretan, edo ezarri overlayaren MTU kontrolatzaileak sartzen den karga erabilgarria iragar dezan.
docker network create --driver overlay --attachable --opt com.docker.network.driver.mtu=1400 swarm-overlay
Ingress sarea automatikoki sortzen da, beraz hura aldatzeak kentzea eta berriro sortzea esan nahi du, tokian bertan editatzea beharrean.
Tunelaren alde bat bakarrik konponduz gero, MTU txikiagoa da oraindik axola duena.
Begiratu datu-planoari, ez erregistroei
Hartu VXLAN portua bi muturretan. Alde batetik irteten eta bestera iristen diren markoek beheko geruza ondo dagoela esan nahi dute eta arazoa overlayaren barruan dagoela. Irteten eta inoiz iristen ez diren markoek ibilbidea edo iragazkia esan nahi dute. Batere irteten ez diren markoek jatorrizko helbidea okerra dela esan nahi dute.
Segundo batzuen buruan garbitzen diren zerbitzu-aurkikuntzako hutsegiteek pakete-aurrekontuari edo bide dardarakor bati erreferentzia egiten diote normalean, ez raft quorumari.
Gorde leiho funtzionagarri bateko harrapaketa, hondatutakoarekin alderatzea konfigurazioa berriro irakurtzea baino azkarragoa delako.