Puncte:1

Docker Swarm. Containerele dintr-o rețea suprapusă, dar pe noduri diferite, nu pot ajunge unul la altul prin tcp

drapel cn

Am un grup de docker roi cu 12 noduri. Containerele implementate pe un singur nod pot ajunge unul la celălalt prin intermediul rețelei de suprapunere, dar atunci când sunt implementate pe noduri diferite, există o problemă de conectivitate: numele de gazdă sunt rezolvate și pot trimite ping la un container de la altul, dar când încerc să ajung la alt container prin tcp ( de exemplu, cu telnet) am o așteptare lungă și apoi expirarea conexiunii. Firewall-ul de pe fiecare nod este deja configurat pentru docker roi, cu porturile 2377, 7946 și 4789 deschise.

Exemplu: Pe nodul meu principal am rulat aceste comenzi pentru a crea servicii programate pentru diferite noduri:

docker network create -d overlay test_net
docker service create --constraint node.labels.first==true --name first --network test_net ubuntu/nginx:1.18-20.04_beta
docker service create --constraint node.labels.second==true --name second --network test_net ubuntu/nginx:1.18-20.04_beta

Apoi din container mai întâi rulez:

root@37be801ebe8b:/# secundă ping
PING secundă (10.0.5.18): 56 de octeți de date
64 de octeți din 10.0.5.18: icmp_seq=0 ttl=64 time=0,092 ms
64 de octeți din 10.0.5.18: icmp_seq=1 ttl=64 time=0,067 ms
64 de octeți din 10.0.5.18: icmp_seq=2 ttl=64 time=0,083 ms
64 de octeți din 10.0.5.18: icmp_seq=3 ttl=64 time=0,073 ms
^C--- a doua statistică ping ---
4 pachete transmise, 4 pachete primite, 0% pierdere de pachete
dus-întors min/avg/max/stddev = 0,067/0,079/0,092/0,000 ms

Dar apoi, când încerc să conectez alt nod cu telnet (există nginx în acest container care ascultă pe portul 80):

root@37be801ebe8b:/# telnet secunda 80
Încercând 10.0.5.18...
telnet: Imposibil de conectat la gazda de la distanță: Conexiunea a expirat

Poate cineva să sugereze o soluție pentru această problemă?

Puncte:1
drapel cn

Am găsit răspunsul aici https://stackoverflow.com/questions/66251422/docker-swarm-overlay-network-icmp-works-but-not-anything-else

Problema a fost cu sumele de verificare proaste de pe pachetele de ieșire. Care au fost renunțate la interfața de rețea din cauza asta.

Soluția a fost să dezactivezi descărcarea sumei de control. Folosind ethtool:

# ethtool -K <interfață> tx dezactivat

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.