Sobes.tech
Middle+

Kako se vrši preusmeravanje saobraćaja ka ingress-u iznutra klastera?

sobes.tech АИ

Одговор од АИ

Za preusmeravanje saobraćaja iznutra klastera ka Ingress-u koristi se DNS ime servisa Ingress Controller-a. U standardnoj konfiguraciji, Ingress Controller se implementira kao servis tipa LoadBalancer ili NodePort.

  1. Otkrivanje servisa: Aplikacija unutar klastera koristi DNS ime servisa, koji izlaže (čini vidljivim) Ingress Controller. Na primer, nginx-ingress-controller.ingress-nginx.svc.cluster.local, ako se koristi nginx-ingress sa odgovarajućim imenom servisa.

  2. IP servisa/ClusterIP: DNS server Kubernetes klastera (npr. CoreDNS) rešava ovo DNS ime u ClusterIP Ingress Controller servisa.

  3. kube-proxy: kube-proxy na čvoru gde se pokreće aplikacija presreće saobraćaj usmeren na ClusterIP servis Ingress Controller-a.

  4. iptables/ipvs: kube-proxy koristi pravila iptables ili ipvs za rutiranje saobraćaja ka jednom od podova Ingress Controller-a.

  5. Obrada u Ingress Controller-u: Podovi Ingress Controller-a primaju saobraćaj i, u skladu sa pravilima Ingress resursa, ga preusmeravaju na odgovarajući servis unutar klastera.

Primer zahteva iz poda:

# Zahtev ka servisu putem Ingress-a, koristeći interni DNS
curl http://my-app.example.com

Ovde se my-app.example.com rešava od strane DNS servera klastera u ClusterIP servis Ingress Controller-a, ukoliko su odgovarajući zapisi konfigurirani ili ako je Ingress Controller podešen da direktno obrađuje takve zahteve (manje tipično za unutrašnji saobraćaj). Većina unutrašnjeg saobraćaja pristupa servisu putem njegovog DNS imena. Ako je potrebno eksplicitno proći kroz Ingress iznutra u klasteru, treba osigurati da je Ingress Controller dostupan putem ClusterIP ili lokalne IP adrese podova i da DNS zapis ili mehanizam rutiranja usmerava na njega.

Najčešći obrazac za komunikaciju između servisa unutar klastera je direktan pristup servisu putem njegovog DNS imena (<service-name>.<namespace>.svc.cluster.local), zaobilazeći Ingress. Preusmeravanje saobraćaja ka Ingress iznutra u klasteru obično je potrebno za testiranje ili specifične scenarije rutiranja.