Kubernetes control plane: A klaszter agya működés közben
A Kubernetes egyik legfontosabb eleme a vezérlősík (control plane) megfelelő működése. Ez a komponenscsoport gondoskodik arról, hogy a klaszter (cluster) aktuális állapota mindig összhangban legyen a kívánt állapottal. Nézzük meg a vezérlősík fő részeit, azok működését és szerepét a Kubernetes-ökoszisztémában.
Mi az a vezérlősík?
A vezérlősík az a logikai réteg, amely a teljes fürt irányításáért felelős. Olyan kapszulák (pod-ok) összessége, amelyek különböző folyamatokat (pl. API-kiszolgálás, ütemezés, állapotkezelés) futtatnak. Minden művelet ezen keresztül történik, legyen szó felhasználói kérésről vagy a rendszer belső kommunikációjáról.

Főbb vezérlősík-komponensek
kube-apiserver
A kube-apiserver a Kubernetes API bejárata. Ez az egyetlen komponens, amely közvetlenül kommunikál az etcd-adatbázissal, és minden kérést rajta keresztül kell lebonyolítani.
Feladatai:
- Kérések fogadása és érvényesítése (mind felhasználói, mind rendszeroldali)
- A REST API műveletek kiszolgálása
- Az objektumok állapotának frissítése az etcd-ben
A Kubernetes v1.18-as verziójától kezdődően a Konnectivity szolgáltatás külön tudja választani a felhasználói és rendszerforgalmat, bár a legtöbb hálózati bővítmény még nem teszi ezt meg, ami hatással lehet a teljesítményre és a biztonságra.
A Kubernetes aktuális verzióiról az alábbi hivatalos cikkben olvashatsz.
kube-scheduler
Ez a komponens dönti el, hogy melyik csomóponton fusson egy új kapszula. A döntést egy algoritmus hozza meg az alábbi tényezők alapján:
- Elérhető erőforrások (pl. kötetek)
- Kvóták, címkék (labels), tűrések (tolerations) és taint-ek
- Felhasználói kényszerítések (node affinity, node selector)
A döntés nem garantálja az azonnali elindulást, például ha egy adott erőforrás még nem áll rendelkezésre, vagy nincs elegendő szerverkapacitás.
etcd
Az etcd egy nagy teljesítményű kulcs-érték (key-value) tároló, amelyben a Kubernetes tárolja a teljes fürt állapotát. Tulajdonságai:
- B-fa alapú adattárolás, módosítás helyett új értékek hozzáfűzése
- Verziókezelés és ütközéskezelés: ha több kérés érkezik, csak az első sikeres, a többi 409-es hibával tér vissza
- Leader-alapú konszenzus: az egyik példány vezér szerepben van, a többiek követők vagy tanulók (learners)
Mivel az etcd a fürt perzisztens állapotának egyetlen forrása, rendszeres biztonsági mentés (snapshot) javasolt karbantartás előtt.
kube-controller-manager
Ez a vezérlőhurok (control loop) démon több különálló vezérlőt futtat. Ezek felelősek azért, hogy az aktuális állapot megfeleljen a kívánt állapotnak.
Példák:
- Névtér- (namespace) és replikavezérlő
- Végpontok (endpoints) kezelése
A komponens folyamatosan figyeli az állapotot, és szükség esetén beavatkozik.
cloud-controller-manager
Ez egy opcionális komponens, amely a felhőszolgáltatókkal (pl. Azure, AWS, GCP) való integrációt kezeli. Lehetővé teszi, hogy a felhő specifikus műveletek ne befolyásolják a Kubernetes alapműködését.
Jellemzők:
- Külső (out-of-tree) vagy belső (in-tree) telepítés
- A kubelet elindításához meg kell adni a
--cloud-provider=external
kapcsolót - Bővíthető saját megvalósítással
CoreDNS
A Kubernetes DNS-szolgáltatása. Felváltotta a korábbi kube-dns megoldást. Rugalmas, bővíthető, összefűzött plugineken keresztül oldja meg a névfeloldást, „szolgáltatásfelfedezést” és más, hálózattal kapcsolatos funkciókat.
Kiegészítők és bővítmények
A vezérlősík alapkomponensein kívül egyes bővítmények is elengedhetetlenek a termelési cluster-ekben, például:
- DNS (CoreDNS)
- Naplózás (pl. Fluentd, Loki)
- Monitorozás (pl. Prometheus)
- Házirend kezelés (pl.: Kyverno)
Ezek közül nem mindegyik natív Kubernetes-komponens, de erősen ajánlottak a stabil működéshez.
Felügyelt Kubernetes-szolgáltatások
A felügyelt Kubernetes-szolgáltatások esetén – mint például az Azure Kubernetes Service (AKS), Amazon EKS vagy Google Kubernetes Engine (GKE) – a vezérlősík (control plane):
- nem hozzáférhető,
- nem számlázott külön tételként (vagy korlátozottan),
- láthatatlanul működik a háttérben,
- és a felhőszolgáltató üzemelteti és frissíti automatikusan.
Ez a felhasználók számára azt jelenti, hogy:
- Nem kell gondoskodniuk az
etcd
,kube-apiserver
,scheduler
stb. frissítéséről, biztonságáról, skálázásáról. - A teljes klaszter vezérlése API-n keresztül történik, de annak háttér-infrastruktúráját a szolgáltató kontrollálja.
- A látható és menedzselhető réteg a munkavégző csomópontok (worker nodes) és a rajtuk futó kapszulák.
Összegzés
A vezérlősík biztosítja a Kubernetes fürt szívverését. Komponensei szorosan együttműködnek annak érdekében, hogy az alkalmazások megbízhatóan, skálázhatóan és konzisztensen fussanak.
A vezérlősík megértése nélkülözhetetlen minden Kubernetes-adminisztrátor vagy DevOps szakember számára.