May 9, 2025

Šta je Service u Kubernetesu?

 Service (servis) je stalna mrežna apstrakcija koja omogućava pristup Podovima putem fiksne IP adrese i DNS imena, bez obzira na to da li se Podovi menjaju.

Drugim rečima:

Service je "stalna adresa" za pristup aplikaciji koja se pokreće u Podovima, iako se ti Podovi menjaju u pozadini.


🧠 Zašto je to važno?

Kada koristiš Deployment ili ReplicaSet, Kubernetes stalno menja Podove (npr. zbog restarta, skaliranja…). Svaki Pod dobije novu IP adresu, pa ne možeš direktno da se oslanjaš na njih.

Zato koristiš Service kao "fiksni ulaz" koji automatski preusmerava saobraćaj na ispravne Podove.


⛓️ Kako radi?

Service koristi label selector da pronađe Podove:


apiVersion: v1 kind: Service metadata: name: moj-servis spec: selector: app: moja-aplikacija ports: - port: 80 targetPort: 8080 type: ClusterIP

Ovo znači:

  • Pronalazi sve Podove koji imaju label: app=moja-aplikacija

  • Kada neko pristupi ovom servisu na portu 80, saobraćaj se šalje na 8080 unutar Podova

  • ClusterIP znači da je servis dostupan samo unutar klastera


🧭 Tipovi servisa:

TipDostupan gde?Opis
ClusterIPUnutar klasteraPodrazumevani
NodePortSa spolja preko nodovaOtvara port na svakom nodu
LoadBalancerSpolja kroz cloud load balancerKoristi eksterni IP (npr. u AWS, GCP)
ExternalNameDNS alias za eksterni servisNema port forwarding

🗺️ Analogija:

Zamisli da imaš restoran (Podove) koji se stalno seli u različite lokale, ali uvek zadrži isti broj telefona (Service). Kada klijent pozove taj broj, automatski se poveže sa trenutnom lokacijom.

No comments:

Post a Comment