Sobes.tech
Middle+

Kaip vyksta srauto nukreipimas į ingress iš klasterio viduje?

sobes.tech AI

Atsakymas iš AI

Klasterio viduje srauto nukreipimui į Ingress naudojamas Ingress Controller DNS vardas. Standartinėje konfigūracijoje Ingress Controller išplečiamas kaip LoadBalancer arba NodePort tipo paslauga.

  1. Service Discovery: Programėlė klasteryje naudoja Service DNS vardą, kuris atskleidžia (pateikia) Ingress Controller. Pavyzdžiui, nginx-ingress-controller.ingress-nginx.svc.cluster.local, jei naudojamas nginx-ingress su atitinkamu Service pavadinimu.

  2. Service IP/ClusterIP: Kubernetes klasterio DNS serveris (pvz., CoreDNS) išsprendžia šį DNS vardą į ClusterIP Service, kuris atstovauja Ingress Controller.

  3. kube-proxy: kube-proxy ant mazgo, kuriame veikia programa, perima srautą, nukreiptą į ClusterIP Service, kuris atstovauja Ingress Controller.

  4. iptables/ipvs: kube-proxy naudoja iptables arba ipvs taisykles maršrutizacijai srautui į vieną iš Ingress Controller podų.

  5. Apdorojimas Ingress Controller: Ingress Controller podai gauna srautą ir, pagal Ingress resursų taisykles, jį nukreipia į atitinkamą vidinį klasterio servisą.

Pavyzdinis užklausos pavyzdys iš podo:

# Užklausa per Ingress, naudojant vidinį DNS
curl http://my-app.example.com 

Čia my-app.example.com išsprendžiamas DNS serveriu į ClusterIP Service Ingress Controller, jei yra tinkamai sukonfigūruoti įrašai arba jei Ingress Controller yra sukonfigūruotas tvarkyti tokias užklausas tiesiogiai (mažiau įprasta vidiniam srautui). Dažniausiai vidinis srautas kreipiasi į servisą pagal jo DNS vardą. Jei norite aiškiai pereiti per Ingress iš klasterio viduje, turite įsitikinti, kad Ingress Controller yra pasiekiamas per ClusterIP arba vietinį IP ir kad DNS įrašas arba maršrutizacijos mechanizmas nukreipia jį į jį.

Dažniausias modelis klasterio viduje yra tiesioginis serviso naudojimas pagal jo DNS vardą (<service-name>.<namespace>.svc.cluster.local), apeinant Ingress. Srauto nukreipimas į Ingress iš klasterio dažniausiai reikalingas testavimui arba specifiniams maršrutizacijos scenarijams.