Master Node (ili Control Plane) je ključna komponenta u Kubernetes klasteru. On je mozak klastera i upravlja svim operacijama, kao što su raspoređivanje resursa, skaliranje aplikacija, praćenje stanja, i druge administrativne funkcije.
🧠 Šta Master Node radi?
Master Node je odgovoran za centralizovano upravljanje celokupnim Kubernetes klasterom. Sastoji se od nekoliko ključnih komponenti koje omogućavaju funkcionisanje i koordinaciju:
1. API Server (kube-apiserver):
-
API server je glavna tačka interakcije sa Kubernetes klasterom.
-
Svi zahtevi (kao što su komande
kubectl
ili automatske interakcije sa klasterom) idu kroz API server. -
API server obrađuje ove zahteve, usmerava ih prema odgovarajućim Kubernetes komponentama, i vraća rezultate korisnicima.
2. Controller Manager (kube-controller-manager):
-
Kontroler menadžer upravlja kontrolerima koji prate stanje klastera i prate promene u sistemu.
-
Na primer, kada se desi nešto neočekivano, kao što je nestanak Pod-a, kontroler će pokušati da ga ponovo pokrene (npr. za Deployment, ReplicaSet).
-
Takođe, prati resurse poput Node-ova, Pod-ova, Service-ova i Deployment-a.
3. Scheduler (kube-scheduler):
-
Scheduler je odgovoran za raspoređivanje Pod-ova na Worker Node-ove.
-
On prati dostupne resurse na Node-ovima (CPU, RAM, itd.) i odlučuje na kojem Node-u će se pokrenuti određeni Pod.
-
Scheduler takođe uzima u obzir faktore kao što su affinity, taints, tolerations, itd.
4. etcd:
-
etcd je distribuirani key-value store koji čuva sve podatke o stanju klastera (kao što su podaci o Podovima, Service-ima, Node-ovima, konfiguracijama, itd.).
-
To je osnova za pohranu podataka u Kubernetesu.
-
Ako se podaci u klasteru promene (npr. ako se doda novi Pod ili obriše neki servis), etcd se ažurira.
5. Cloud Controller Manager (ako je korišćenje u cloud okruženju):
-
Ova komponenta omogućava Kubernetesu da komunicira sa cloud servisima (AWS, GCP, Azure) i automatski upravlja resursima u cloudu.
-
Na primer, može automatski da kreira load balancer-e, cloud storage i druge resurse u cloud okruženju.
🛠️ Kako Master Node funkcioniše?
-
Korisnik ili Kubernetes kontroler šalje komande preko
kubectl
ili druge interfejse ka API server-u. -
API server proverava i validira zahtev, i prosleđuje ga odgovarajućim komponentama (Scheduler, Controller Manager, itd.).
-
Scheduler odlučuje gde da rasporedi Pod.
-
Controller Manager prati stanje klastera i menja ga ako je potrebno (npr. pokreće novi Pod ako postojeći nije dostupan).
-
etcd čuva sve promene u stanju klastera.
🧩 Analogija:
Zamisli da je Master Node kao menadžer fabrike. On prati sve procese, usmerava radnike (Pod-ove), i odlučuje šta treba da se desi u svakom trenutku. Kada nešto pođe po zlu (npr. radnik (Pod) se pokvari), menadžer (Master) će doneti odluku o tome kako da to popravimo.
⚠️ Napomena:
-
Master Node ne pokreće direktno Podove (to rade Worker Node-ovi). Međutim, on upravlja svim operacijama klastera.
-
U većim klasterima možeš imati više Master Node-ova za visoku dostupnost (HA), što znači da će klaster ostati operativan čak i ako jedan Master Node padne.