Kubernetes oktatóanyag kezdőknek: alapok, funkciók, Architectúra
Mielőtt elkezdené ezt a Kubernetes oktatóanyagot, tanuljuk meg:
Mi a Kubernetes?
Kubernetes egy konténerkezelő rendszer, amelyet a Google platformján fejlesztettek ki. A Kubernetes segít a konténeres alkalmazások kezelésében különféle típusú fizikai, virtuális és felhőkörnyezetekben. A Google Kubernetes egy rendkívül rugalmas konténereszköz, amely több száztól több ezer egyedi szerverből álló fürtökön futó összetett alkalmazásokat biztosít folyamatosan.
Miért van szüksége konténerekre?
A mai internetfelhasználók soha nem fogadják el az állásidőt. Ezért a fejlesztőknek olyan módszert kell találniuk, amellyel szolgáltatásaik megszakítása nélkül végezhetnek karbantartást és frissítést.
Ezért a konténer, amely elszigetelt környezet. Mindent tartalmaz, ami az alkalmazás futtatásához szükséges. Ez megkönnyíti a fejlesztők számára az alkalmazások szerkesztését és telepítését. Ezenkívül a konténerezés a webalkalmazások csomagolásának, telepítésének és frissítésének kedvelt módszerévé vált.
Milyen feladatokat lát el a Kubernetes?
A Kubernetes az elosztott rendszerekhez használt Linux kernel. Segít a csomópontok (kiszolgálók) mögöttes hardverének elvonatkoztatásában, és konzisztens felületet kínál a megosztott erőforráskészletet fogyasztó alkalmazások számára.
Miért érdemes a Kuberneteset használni?
A Kubernetes segít a felhőalkalmazások és mikroszolgáltatások erőforrás-elosztásának és forgalomkezelésének vezérlésében. Segít a szolgáltatás-orientált infrastruktúrák különböző szempontjainak egyszerűsítésében is. A Kubernetes lehetővé teszi annak biztosítását, hogy a konténeres alkalmazások hol és mikor futnak, és segít megtalálni az erőforrásokat és eszközöket, amelyekkel dolgozni szeretne.
A Kubernetes jellemzői
Íme a Kubernetes alapvető funkciói:
- Automatizált ütemezés
- Öngyógyító képességek
- Automatizált közzététel és visszaállítás
- Vízszintes méretezés és terheléselosztás
- Környezeti konzisztenciát kínál a fejlesztéshez, teszteléshez és gyártáshoz
- Az egyes komponensekhez lazán kapcsolódó infrastruktúra külön egységként működhet
- Nagyobb sűrűségű erőforrás-felhasználást biztosít
- Vállalati használatra kész funkciókat kínál
- Alkalmazásközpontú menedzsment
- Automatikusan skálázható infrastruktúra
- Kiszámítható infrastruktúrát hozhat létre
Kubernetes alapok
Ebben a Kubernetes oktatóanyagban megtanuljuk a Kubernetes néhány fontos alapját:
-
Cluster
Ez a gazdagépek (szerverek) gyűjteménye, amely segít a rendelkezésre álló erőforrásaik összesítésében. Ez magában foglalja a ramot, a CPU-t, a ramot, a lemezt és ezek eszközeit egy használható készletbe.
-
Mester
A master a Kubernetes vezérlőpultját alkotó összetevők gyűjteménye. Ezeket az összetevőket minden fürtdöntéshez használják. Ez magában foglalja az ütemezést és a fürteseményekre való reagálást is.
-
Csomópont
Ez egy egyetlen gazdagép, amely képes futni egy fizikai ill virtuális gép. Egy csomópontnak futnia kell a kube-proxy-nak, a minikube-nak és a kubelet-nek is, amelyek a fürt részének tekintendők.
-
névtér
Ez egy logikai klaszter vagy környezet. Ez egy széles körben használt módszer, amelyet a hozzáférés hatókörének meghatározására vagy a fürt felosztására használnak.
Kubernetes Architectúra
Az alábbiakban egy részletes Kubernetes architektúra diagram látható:
Mester csomópont
A fő csomópont az első és legfontosabb összetevő, amely a Kubernetes-fürt kezeléséért felelős. Ez mindenféle adminisztratív feladat belépési pontja. Előfordulhat, hogy a fürtben egynél több fő csomópont található a hibatűrés ellenőrzéséhez.
A főcsomópont különféle összetevőket tartalmaz, például API-kiszolgálót, vezérlőkezelőt, ütemezőt és ETCD-t. Lássuk mindegyiket.
API szerver: Az API-kiszolgáló belépési pontként működik a fürt vezérléséhez használt összes REST parancshoz.
Scheduler
Az ütemező ütemezi a feladatokat a szolga csomóponthoz. Minden szolga csomóponthoz tárolja az erőforrás-használati információkat. Felelős a munkateher elosztásáért.
Segít nyomon követni azt is, hogy a munkaterhelés hogyan kerül felhasználásra a fürtcsomópontokon. Segít abban, hogy a munkaterhelést a rendelkezésre álló erőforrásokra helyezze, és elfogadja a terhelést.
stb
Az etcd összetevők konfigurációs részleteket és wright értékeket tárolnak. A legtöbb komponenssel kommunikál a parancsok fogadása és a munka érdekében. Ezenkívül kezeli a hálózati szabályokat és a porttovábbítási tevékenységet.
Dolgozó/szolga csomópontok
A munkavégző csomópontok egy másik alapvető összetevő, amely tartalmazza az összes szükséges szolgáltatást a tárolók közötti hálózat kezeléséhez, a fő csomóponttal való kommunikációhoz, amely lehetővé teszi az erőforrások hozzárendelését az ütemezett tárolókhoz.
- Kubelet: lekéri a Pod konfigurációját az API-kiszolgálóról, és biztosítja, hogy a leírt tárolók üzemben legyenek és működjenek.
- Docker konténer: Dokkmunkás konténer fut minden egyes munkavégző csomóponton, amely a konfigurált podokat futtatja
- Kube-proxy: A Kube-proxy terheléselosztóként és hálózati proxyként működik, hogy szolgáltatást hajtson végre egyetlen dolgozó csomóponton
- Pods: A pod egyetlen vagy több konténer kombinációja, amelyek logikailag együtt futnak a csomópontokon
Egyéb kulcsterminológiák
Replikációs vezérlők
A replikációs vezérlő egy olyan objektum, amely egy pod-sablont határoz meg. Ezenkívül szabályozza a Pod azonos replikáinak vízszintes méretezését a futó másolatok számának növelésével vagy csökkentésével.
Replikációs készletek
A replikációs készletek a replikációs vezérlő tervezésének interakcióját jelentik, amely rugalmasságot biztosít abban, hogy a vezérlő hogyan ismeri fel a kezelni kívánt podokat. Leváltja a replikációs vezérlőket a magasabb replikációs kiválasztási képességük miatt.
Deployments
A telepítés egy gyakori munkaterhelés, amely közvetlenül létrehozható és kezelhető. A telepítés építőelemként használja a replikációs készletet, amely hozzáadja az életciklus-kezelés funkcióját.
Állapottartó készletek
Ez egy speciális pod-vezérlő, amely rendezettséget és egyediséget kínál. Főleg finomszemcsés vezérlésre szolgál, amelyre különösen nagy szüksége van a telepítési sorrend, a stabil hálózatkezelés és az állandó adatok tekintetében.
Daemon Sets
A démonkészletek a pod-vezérlő egy másik speciális formája, amely a fürt minden csomópontján futtat egy pod másolatot. Az ilyen típusú pod-vezérlők hatékony módszer a pod-ok telepítésére, amelyek lehetővé teszik a karbantartás elvégzését, és maguknak a csomópontoknak kínálnak szolgáltatásokat.
Kubernetes vs. Docker Swarm
Itt vannak fontos különbségek között Kubernetes vs Docker.
Vizsgált paraméter | Docker Raj | Kubernetes |
---|---|---|
Scaling | Nincs automatikus skálázás | Automatikus méretezés |
Terheléselosztás | Automatikus terheléselosztást végez | Konfigurálja manuálisan a terheléselosztás beállításait |
Tárhely mennyiség megosztása | Megosztja a tárolási mennyiséget bármely más tárolóval | Megosztja a tárolási mennyiséget több tároló között ugyanazon a podon belül |
Bejelentkezési és felügyeleti eszköz használata | Használja az 3-etrd párteszköz, mint az ELK | Beépített eszközt biztosít a naplózáshoz és megfigyeléshez. |
Telepítés | Könnyű és gyors | Bonyolult és időigényes |
GUI | GUI nem érhető el | GUI elérhető |
skálázhatóság | A skálázás gyorsabb, mint a K8S, de a klaszter erőssége nem olyan robusztus | A skálázás lassú a Swarmhoz képest, de erősebb fürt állapotot garantál A terheléselosztás kézi szervizkonfigurációt igényel |
Terhelés elosztás | Beépített terheléselosztási technikát biztosít | Folyamat ütemezése a szolgáltatások karbantartása érdekében frissítés közben |
Frissítések és visszagörgetések Adatmennyiségek naplózása és figyelése | Progresszív frissítések és a szolgáltatás állapotának figyelése. | Csak ugyanazon Pod beépített naplózó és megfigyelő eszközeiben lévő tárolókkal megosztva. |
A Kubernetes előnyei
- Könnyű szolgáltatásszervezés hüvelyekkel
- A Google fejlesztette ki, aki több éves értékes iparági tapasztalatot hoz az asztalra
- A legnagyobb közösség a konténerhangszerelő eszközök között
- Számos tárolási lehetőséget kínál, beleértve a helyszíni, a SAN-okat és a nyilvános felhőket
- Betartja a megváltoztathatatlan infrastruktúra alapelveit
- A Kubernetes helyszíni bare metal, OpenStack és nyilvános felhők futtatására képes Google, Azure, AWSStb
- Segít elkerülni a szállítói zárolási problémákat, mivel bármilyen szállító-specifikus API-t vagy szolgáltatást használhat, kivéve ahol a Kubernetes absztrakciót biztosít, például terheléselosztót és tárhelyet.
- A kubernetes használatával történő konténerezés lehetővé teszi, hogy a csomagszoftver ezeket a célokat szolgálja. Lehetővé teszi azokat az alkalmazásokat, amelyeket leállás nélkül kell kiadni és frissíteni.
- A Kubernetes lehetővé teszi, hogy biztosítsa, hogy ezek a konténeres alkalmazások ott és akkor futhassanak, amikor és amikor csak akarja, és segít megtalálni a használni kívánt erőforrásokat és eszközöket.
A Kubernetes hátrányai
- A Kubenetes műszerfal nem olyan hasznos, mint kellene
- A Kubernetes egy kicsit bonyolult és szükségtelen olyan környezetben, ahol minden fejlesztés helyben történik.
- A biztonság nem túl hatékony.
Összegzésként
- A Container segít a szervezetnek karbantartást és frissítést végezni a szolgáltatások megszakítása nélkül
- A Kubernetes egy példa a Google platformon kifejlesztett konténerkezelő rendszerre.
- A Kubernetes használatának legnagyobb előnye, hogy képes futtatni a helyszíni OpenStack-et, a Google nyilvános felhőit, Azure, AWS stb.
- A Kubernetes automatizált ütemezési és öngyógyító képességeket kínál.
- Cluster, a mester, a csomópont és a névtér a kubernetes fontos alapjai
- A főcsomópont és a munkacsomópont a Kubernetes architektúra fontos összetevői.
- A replikációs vezérlők, a replikációs készletek, a telepítések, az állapottartó készletek, a démonkészletek a Kubernetesben használt egyéb fontos kifejezések.
- A Docker swarm nem teszi lehetővé az automatikus skálázást, míg a Kubernetes engedélyezi az automatikus skálázást.
- A Kubenetes legnagyobb hátránya, hogy a műszerfal nem túl hasznos és hatékony