Puncte:1

Rutarea Ubuntu 20.04 pentru un singur IP (în aceeași subrețea) se termină cu „dev lo” în loc de „dev eth0”, nodul de lucru kubernetes nu se poate conecta la nodul principal

drapel fr

M-am lovit de (după cum mi se pare acum) o problemă de rutare. Nu mai pot accesa unul dintre nodurile mele de lucru (server) de la nodul meu principal (server). AFAIK, nu are nimic de-a face cu Kubernetes, duce la o problemă pură de rețea Linux. Deoarece problema este cu un singur IP, am depanat iptables, am activat TRACE și mi-am dat seama că pachetul vine de fapt peste master (eth0), ajunge la iptables (trece: raw > mangle >nat), dar când trebuie să fie direcționat de la nat la filtru, pur și simplu dispare. După cum am înțeles, acesta este punctul în care nucleul trebuie să ia decizia de rutare.Am verificat rutarea și am constatat că nu funcționează doar pentru acel IP (toate celelalte din același segment IP funcționează bine)!? Deoarece sunt cu un furnizor de cloud și nu pot depana rețeaua, așa că am încercat să reinstalez sistemul de operare (același Ubuntu 20.04) al nodului principal (server). Am aflat că, odată cu reinstalarea proaspătă a sistemului de operare, problema nu a fost prezentă, prin urmare problema de configurare trebuie să fie pe serverul meu principal Linux (am reîntors imaginea serverului din instantaneu).

root@vmi57XXXX:~# rută  
Tabelul de rutare IP kernel  
Destination Gateway Genmask Flags Metric Ref Utilizare Iface  
implicit gw.provider.net 0.0.0.0 UG 0 0 0 eth0  
10.244.0.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0  
10.244.1.0 10.244.1.0 255.255.255.0 UG 0 0 0 flanel.1  
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0  
root@vmi57XXXX:~# ruta IP obține xx.xx.xx.96  
local xx.xx.xx.96 dev lo src xx.xx.xx.96 uid 0   
    cache <local>   
root@vmi57XXXX:~# ruta IP obține xx.xx.xx.95  
xx.xx.xx.95 prin xx.xx.xx.1 dev eth0 src xx.xx.xx.95 uid 0   
    cache  
root@vmi57XXXX:~# ruta IP obține xx.xx.xx.97  
xx.xx.xx.97 prin xx.xx.xx.1 dev eth0 src xx.xx.xx.97 uid 0   
    cache   
  
root@vmi57XXXX:~# arp -v  
Adresă HWtype HWaddress Flags Mask Iface  
10.244.0.60 eter 8a:94:de:43:b6:0f C cni0  
10.244.0.63 eter 1e:76:6a:60:27:f3 C cni0  
10.244.0.62 eter 36:0b:19:5e:57:87 C cni0  
gw.provider.net ether 00:c0:1d:c0:ff:ee C eth0  
10.244.0.64 eter 82:03:61:c5:4d:fb C cni0  
10.244.0.50 (incomplet) cni0  
10.244.1.0 eter 52:3d:a5:f4:c2:2c CM flanel.1  
10.244.0.61 eter 56:19:98:79:a1:3a C cni0  
Intrări: 8 Omis: 0 Găsit: 8  

root@vmi57XXXX:~# ip netconf arată dev eth0
inet eth0 forwarding on rp_filter off mc_forwarding off proxy_neigh off 
ignore_routes_with_linkdown dezactivat 
inet6 eth0 forwarding off mc_forwarding off proxy_neigh off 
ignore_routes_with_linkdown dezactivat 

Orice indicii despre ce se întâmplă acolo sunt mai mult decât binevenite!!!

Mulțumiri

EDIT: După rezolvarea problemei, merită menționat că acest comportament a fost experimentat cu Kubernetes 1.21.2-00 și flannel ca CNI. Am făcut upgrade-ul acum câteva săptămâni și aceasta a fost prima repornire a unui nod de lucru după actualizare.

Puncte:1
drapel fr

REZOLVAT!

tipul rău era de fapt Kubernetes - a stabilit o rută L O C A L pe nodul principal care nu poate funcționa fără serviciul de rețea funcțional al Kubernetes (flanel - în cazul meu).Prin urmare, atunci când nodul lucrător a fost repornit, nu a mai putut accesa serviciul API al nodului principal (6443/tcp) și nu s-a putut prezenta la API - acel cerc magic închis în care nodul woker a făcut buclă fără noroc.

Am aflat astăzi despre rutele „locale” întreținute de kernel (toate tabelele de rutare prezente pot fi găsite aici: /etc/iproute2/rt_tables).

ip route ls table local
local xx.xx.xx.96 dev kube-ipvs0 proto kernel scope host src xx.xx.xx.96 <<< PROBLEMATIC
local xx.xx.xx.50 dev eth0 proto kernel scope host src xx.xx.xx.50 <<< adică OK

sterge ruta

ip route del table local local xx.xx.xx.96 dev kube-ipvs0 proto kernel scope host src xx.xx.xx.96

iar acum merge

root@vmi57XXXX:~# ruta IP obține xx.xx.xx.96
xx.xx.xx.96 prin xx.xx.xx.1 dev eth0 src xx.xx.xx.50 uid 0 
    cache
Martin avatar
drapel kz
merge mai departe și acceptă propriul tău răspuns. Frumos! Nu am știut niciodată că există un tabel de rutare care nu este afișat folosind comanda „veche” de rută...
Marsplay avatar
drapel fr
a trebuit să petreacă două zile și o noapte nedormite pentru a afla asta. Nu eram sigur ce căutam exact și căutarea pe google nu a ajutat deloc. Pentru a-i ajuta pe alții, am adăugat kubernetes la titlul problemei, deoarece ar putea fi mult mai mulți oameni cu aceeași problemă. Și pentru a-mi accepta propriul răspuns durează două zile, așa spun regulile sistemului :)

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.