Puncte:0

Comunicarea NodePort între noduri nu funcționează

drapel kr

Am un cluster cu 4 noduri cu un serviciu NodePort expus de la portul 80 la portul 30871. Pot accesa serviciul pe fiecare nod cu numele de gazdă al nodului respectiv, de exemplu:

curl http://hostname1:30871 pe nodul hostname1

funcționează așa cum v-ați aștepta. La fel pentru

curl http://hostname2:30871 pe nodul hostname2

M-aș aștepta să pot ajunge la serviciu de la alte noduri. Cu toate acestea, alergând

curl http://hostname1:30871

de la nodul hostname2 are ca rezultat o eroare de expirare a conexiunii. Același lucru când folosesc IP-urile. Folosesc flanel pentru rețea și se află pe un cluster CentOS metalic, Kubernetes 1.20.

Pot accesa serviciul prin ClusterIP de la oricare dintre noduri. Asa de

curl http://clusterIPaddress:80

Funcționează ca un farmec pentru toate nodurile.

Firewall-urile sunt toate deschise și testate pentru a funcționa. Același lucru se întâmplă și pentru mașinile din afara clusterului.Din nou, m-aș aștepta să pot accesa http://hostname1:30871 de oriunde, dar apare aceeași problemă de timeout.

SYN avatar
drapel hk
SYN
E cam ciudat... În acea etapă, aș instala tcpdump și aș încerca să-mi dau seama unde se pierde acea conexiune lipsă. Recent (flannel+iptables), am văzut lucruri ciudate cu regulile iptables: nu ezitați să comparați regulile de la un nod la altul.
mxcolin avatar
drapel kr
Este ciudat, am testat firewall-ul și porturile deschise folosind nc exact pe aceleași porturi și funcționează așa cum v-ați aștepta, ceea ce este foarte ciudat.
SYN avatar
drapel hk
SYN
Folosiți tcpdump, pe nodurile sursă și destinație, uitați-vă la interfața principală de rețea/unde ascultă nodeporturile, filtrați pe portul de destinație: vedeți acele conexiuni părăsind nodul sursă? Ajunge la nodul de destinație? Actualizați-vă postarea cu acele tcpdumps, spuneți-ne ce vedeți.
mxcolin avatar
drapel kr
Iată ce văd până când expiră `17:15:37.090460 IP 10.120.112.226.57008 > 10.120.112.210.80: Steaguri [S], seq 4047977385, win 29200, opțiuni [mss 112.210.80, 2008000000, 2000, 2000, 2000, 2000 0`
mxcolin avatar
drapel kr
Am schimbat k8s pentru a permite partajarea portului 80, dar același comportament are loc pentru orice port.Toate porturile și testate între mașini și de lucru.
SYN avatar
drapel hk
SYN
Ce este asta? nod sursă, nod dest? Executați tcpdump pe vreo interfață? Te rog, EDITează-ți postarea inițială, cu ieșire tcpdump pe interfețele de rețea NON-SDN (nu există niciun motiv pentru care am vedea acel portul 80) și filtra pe PORTUL DE DESTINĂȚIE (la care te conectezi: portul tău NodePort). Arată-ne atât nodurile SOURCE, cât și DESTINATION.
SYN avatar
drapel hk
SYN
Acest „10.120.112.226.57008 > 10.120.112.210.80” ar trebui să rămână în SDN-ul tău. Nodurile dvs. ar trebui să aibă o rută (`ip r`), care trimite acea subrețea prin SDN. Dacă nu ne spui unde ai văzut asta: e inutil.
mxcolin avatar
drapel kr
Nu sunt foarte familiarizat cu tcpdump, încercând să învăț. Deci asta ar fi: `sudo tcpdump --interface -nn gazdă ` pe gazdă și `sudo tcpdump --interface -nn gazdă si portul 30871` pe destinatie?

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.