Csomópontok (node) szerepe a Kubernetes világában
Az elmúlt hónapokban többször írtam már a Kubernetes fejlődéséről, arról, hogyan vált a modern alkalmazásfejlesztés egyik legfontosabb alapkövévé. Szó esett a fürtök (cluster) működéséről, a kapszulák (pod) rugalmasságáról és arról, miként segíti a technológia a cégeket digitális jelenlétük megerősítésében. Most elérkeztünk egy újabb fejezethez: nézzük meg közelebbről, mi is az a csomópont (node), amely nélkül egy Kubernetes környezet nem létezhetne.
Képzeljünk el egy várost, ahol minden ház más-más feladatot lát el. Van, amelyikben ételt főznek, másutt ruhát készítenek, máshol pedig tudást gyűjtenek. A város lakói a központi tér körül gyűlnek össze, ahol szabályok szerint szervezik a közös életet. A Kubernetes világában ez a „város” a fürt, a „házak” pedig a csomópontok – mindegyikük a maga erőforrásaival és feladataival járul hozzá a közösség működéséhez.
Mi az a csomópont?
A csomópont (node) egy olyan API objektum, amely a fürt részeként jelenik meg. Gyakorlatilag egy gépet jelent – lehet fizikai szerver vagy virtuális gép –, amely futtatja a kapszulákat. A vezérlő sík (control plane) mindig Linux alapú, a munkavégző (worker) csomópontok azonban lehetnek akár Microsoft Windows Server rendszeren is.
Minden csomópontot csak akkor lehet bevonni a fürtbe, ha a szükséges szoftverek telepítve vannak rá, és képes kommunikálni az API szerverrel. Új csomópont hozzáadására például a kubeadm join
parancs szolgál, míg a vezérlő síkot a kubeadm init
segítségével hozhatjuk létre.
Mi történik, ha egy csomópont „eltűnik”?
A Kubernetes folyamatosan figyeli, hogy a csomópontok rendben működnek-e. Ha az API szerver öt percen át nem tud kommunikálni a csomóponton futó kubelet-tel, a rendszer automatikusan „nem elérhetőnek” jelöli azt. Ilyenkor a kapszulák kényszerített törlése helyett azok evakuálása történik, majd később, a kapcsolat helyreállásakor újra elérhetővé válnak.
Minden csomópont objektum a kube-node-lease
névtérben található. Ha teljesen el akarunk távolítani egy csomópontot a fürtből, a folyamat kétlépcsős: először a kubectl delete node <node-név>
paranccsal töröljük az API szerverből, majd a kubeadm reset
segítségével kitisztítjuk a fürtspecifikus adatokat. Újrafelhasználás esetén még az iptables szabályokat is érdemes eltávolítani.
Hogyan figyelhetjük az erőforrásokat?
A kubectl describe node
parancs részletes képet ad a csomópont aktuális állapotáról: láthatjuk a CPU és memória kapacitást, a futó kapszulákat, valamint a kért és limitált erőforrásokat. Ez a mindennapi üzemeltetés egyik kulcseszköze, hiszen segít a tervezésben és a problémák gyors diagnosztizálásában.
Összegzés
A csomópontok a Kubernetes fürt alapvető építőkövei. Nélkülük nem tudnának futni a kapszulák, és nem lenne értelmezhető maga a rendszer. A csomópontok biztosítják az erőforrásokat, és a vezérlő sík által meghatározott szabályok szerint működnek. Megértésük nélkülözhetetlen a Kubernetes működésének átlátásához.