Sunt un începător al Kubernetes și blocat de partea de rețea.
Kubernetes documentație:
Există mai multe moduri de a publica un serviciu:
- NodePort, expune Serviciul pe IP-ul fiecărui Nod la un port static (NodePort)
- Load Balancer, Expune Serviciul în exterior utilizând echilibrul de încărcare al unui furnizor de cloud. Serviciile NodePort și ClusterIP, către care direcționează echilibratorul de încărcare extern, sunt create automat.
Din înțelegerea mea, un obiect de serviciu Kubernetes este o abstractizare a stratului logic, care este implementată prin Kube Proxy, tabele IP, IPVS și etc.
Serviciul este diferit de instanța EC2 și Load Balancer, care există fizic și ar putea fi accesibile.
Următoarele diagramă arată cum funcționează serviciul de echilibrare a încărcăturii, dar nu explică modul în care Elastic load balancer ajunge la serviciul Kubernetes.
Întrebarea 1: Cum ajunge Cloud-Native Elastic Load Balancer (ELB) traficul către Service?
Îmi asum Serviciul de Echilibrarea greutății
tipul este similar cu Serviciul de NodePort
tastați sub capotă, ambii profită de NodePort. Singura diferență este, pentru Service of Echilibrarea greutății
Tip, cloud-ul ne va ajuta să avem grijă de NodePort și de grupul țintă, nu trebuie să le gestionăm manual singuri.
Trafic
â
Echilibrarea greutății
â
Grup țintă
â
Port Nod VM (IP + Port)
â
IP-ul de serviciu al clusterului
â
Proxy Kube (IPVS)
â
Păstăile de servicii
Este corectă presupunerea mea?
Întrebarea 2: Dacă dezactivăm NodePort al VM, cum se direcționează ELB către service?
În Kubernetes V1.20.0, Kubernetes oferă un nou parametru allocateLoadBalancerNodePort
și permite utilizatorului să dezactiveze NodePort al VM.
KEP-1864: Opțional, dezactivați porturile de nod pentru tipul de serviciu=LoadBalancer
Dacă dezactivăm VM NodePort
, cum ajunge ELB la serviciul logic?
Ați putea explica mai multe detalii? Este mai bine să acoperiți rutele pachetelor TCP/IP, tabelele IP, IPVS etc.