Vissza a bloghoz

Hogyan telepítsük és használjuk a Kubernetes-t Ubuntu 20.04-en

Hogyan telepítsük és használjuk a Kubernetes-t Ubuntu 20.04-en

Bevezetés

Kubernetes egy nyílt forráskódú eszköz, amely kulcsfontosságú a konténer-hangszerelésben. A Kubernetes klaszterek nagy léptékű hangszerelésével és kezelésével működik különböző felhőkörnyezetekben vagy akár helyszíni szervereken. A klaszter olyan gazdagépek összessége, amelyek konténerizált alkalmazások és szolgáltatások futtatására szolgálnak. Egy klaszter működéséhez legalább két csomópontra van szükség – egy master csomópontra és egy worker csomópontra. A skálázhatóságot szem előtt tartva lehetőség van a klaszter bővítésére annyi worker csomóponttal, amennyire szükség van.

A Kubernetes-ben a csomópont (node) egy szerverre utal. A master csomópont egy olyan szerver, amely a klaszter állapotát kezeli. A worker csomópontok olyan szerverek, amelyek a munkaterheléseket futtatják – ezek jellemzően konténerizált alkalmazások és szolgáltatások.

Ez az útmutató végigvezeti Önt egy két csomópontból álló Kubernetes klaszter telepítésének és üzembe helyezésének lépésein Ubuntu 20.04-en. Mint említettük, a két csomópont a legalapvetőbb konfiguráció a Kubernetes használatakor. Lehetősége van további worker csomópontok hozzáadására is, miután megértette az alapokat. A továbbiakban megmutatjuk, hogyan kapcsolhatja össze a két szervert, hogy a master csomópont vezérelhesse a worker csomópontot.

A konfiguráció teszteléséhez egy Docker konténert fogunk telepíteni, amely az Nginx webszervert futtatja a klaszteren. Ez a Kubernetes egy tipikus, valós életbeli alkalmazása. A folyamat során többet fog megtudni a Kubernetes néhány meghatározó összetevőjéről, mint például a kubectl és a kubeadm eszközökről. Javasoljuk továbbá, hogy először ismerkedjen meg a Kubernetes eszközkészlet alapjainak megismeréséről szóló útmutatónkkal, hogy képbe kerüljön a Kubernetes platform alapjaival.

Most pedig kezdjük el!

Előfeltételek

Két szervert kell biztosítania, amelyek az alábbi rendszeren futnak: Ubuntu 20.04. A legjobb teljesítmény érdekében a Kubernetes minimális rendszerkövetelménye 2 GB RAM és 2 CPU. Követheti ennek a lépésről lépésre követhető útmutatónak az 1–4. lépéseit, amely segít az Ubuntu szerver beállításában a CloudSigma-n. Az egyik szerver lesz a master csomópont, a másik pedig a worker csomópont. A két szerverünket találóan így neveztük el: kubernetes-master és kubernetes-worker. Ez megkönnyíti az útmutató követését. Ön azonban szabadon megválaszthatja a kívánt gépneveket.

  • Gondoskodjon arról, hogy mindkét csomóponton hozzáadjon egy sudo jogosultságokkal rendelkező felhasználót, akit a fenti útmutatóban leírt parancsok futtatására fogunk használni. Kövesse ezt a Linux sudoers fájl konfigurálásáról szóló útmutatót az utasításokért.

  • Hálózati kapcsolat – a klaszterben lévő szervereknek képesnek kell lenniük kommunikálni egymással. Amikor létrehozza a virtuális gépeit a CloudSigma platformon, azok alapértelmezés szerint nyilvános IP-címmel kapcsolódnak az internethez. Ha helyi hálózatról dolgozik, előfordulhat, hogy szerkesztenie kell az /etc/hosts fájlt mindegyik szerveren, és megfelelően össze kell kapcsolnia őket.

  • Telepítenie és engedélyeznie kell a Docker -t mindegyik csomóponton. A Kubernetes egy konténer-futtatókörnyezetre támaszkodik a konténerek podokban való futtatásához. Bár más konténerplatformok közül is lehet választani, ebben az útmutatóban a Dockert fogjuk használni. A Docker biztosítja az Ubuntu számára szükséges futtatókörnyezetet. Követheti a Docker telepítéséről és működtetéséről szóló útmutatónk.

1. lépés: A Kubernetes telepítése

Ebben a lépésben telepíteni fogjuk a Kubernetes-t. Csakúgy, mint a Docker esetében az előfeltételekben, a Kubernetes telepítéséhez mindkét csomóponton le kell futtatnia a parancsokat. Használja az ssh-t a mindkét csomópontba való bejelentkezéshez és a folytatáshoz. Kezdésként telepítse az apt-transport-https csomagot, amely lehetővé teszi a http és https protokollok használatát az Ubuntu tárolóiban. Telepítse a curl-t is, mivel erre szükség lesz a következő lépésekben. Futtassa a következő parancsot:

Ezután adja hozzá a Kubernetes aláíró kulcsot mindkét csomóponthoz a következő parancs futtatásával:

Ezután adjuk hozzá a Kubernetes tárolót csomagforrásként mindkét csomóponton a következő parancs használatával:

Ezt követően frissítse a csomópontokat:

  • Kubernetes eszközök telepítése

Amint a frissítés befejeződött, telepítjük a Kubernetes-t. Ez a Kubernetes-t alkotó különféle eszközök telepítését jelenti: kubeadm, kubelet, kubectl, és kubernetes-cni. Ezeket az eszközöket mindkét csomópontra telepíteni kell. Az alábbiakban bemutatjuk az egyes eszközöket:

  • kubelet – egy ügynök, amely minden csomóponton fut, és kezeli a fő (master) csomóponttal való kommunikációt a munkaterhelések elindításához a konténer-futtatókörnyezetben. Írja be a következő parancsot a kubelet telepítéséhez:

  • kubeadm – a Kubernetes projekt része, és segít a Kubernetes fürt inicializálásában. Írja be a következő parancsot a kubeadm telepítéséhez:

  • kubectl – a Kubernetes parancssori eszköze, amellyel parancsokat futtathat a Kubernetes fürtökön belül. Futtassa a következő parancsot a kubectl telepítéséhez:

  • kubernetes-cni – lehetővé teszi a hálózatkezelést a konténereken belül, biztosítva, hogy a konténerek kommunikálhassanak és adatokat cserélhessenek. Futtassa a következő parancsot a telepítéshez:

Opcionálisan mind a négyet telepítheti egyetlen paranccsal:

2. lépés: A swap memória letiltása

A Kubernetes nem működik olyan rendszerben, amely swap memóriát használ. Ezért le kell tiltani a fő (master) csomóponton és az összes munkavégző (worker) csomóponton. Futtassa a következő parancsot a swap memória letiltásához:

Ez a parancs letiltja a swap memóriát a rendszer újraindításáig. Biztosítanunk kell, hogy az újraindítások után is kikapcsolva maradjon. Ezt a fő és az összes munkavégző csomóponton meg kell tenni. Ezt a fstab fájl szerkesztésével és a /swapfile sor kikommentelésével tehetjük meg egy # karakterrel. Nyissa meg a fájlt a nano szövegszerkesztővel a következő parancs beírásával:

A fájlon belül kommentelje ki a swapfile sort az alábbi képernyőképen látható módon:

install Kubernetes fstab swap disable

Ha nem látja a swapfile sort, egyszerűen hagyja figyelmen kívül. Mentse és zárja be a fájlt, ha végzett a szerkesztéssel. Kövesse ugyanezt a folyamatot mindkét csomópont esetében. Mostantól a swap memória beállításai kikapcsolva maradnak, még a szerver újraindítása után is.

3. lépés: Egyedi gépnevek (hostnames) beállítása

A könnyebb azonosítás érdekében a csomópontoknak egyedi gépnevekkel kell rendelkezniük. Ha sok csomópontból álló fürtöt telepít, beállíthat azonosító neveket a munkavégző csomópontok számára, például node-1, node-2 stb. Ahogy korábban említettük, a mi csomópontjainkat kubernetes-master és kubernetes-worker néven neveztük el. Ezeket a szerver létrehozásakor állítottuk be. Ha azonban még nem tette meg, a parancssorból módosíthatja vagy beállíthatja a sajátját. A gépnév módosításához a fő (master) csomóponton futtassa a következő parancsot:

A munkavégző (worker) csomóponton futtassa a következő parancsot:

Bezárhatja a jelenlegi terminálmunkamenetet, majd ssh-n keresztül újra beléphet a szerverre a változások megtekintéséhez.

4. lépés: Az Iptables engedélyezése a híd (bridged) forgalom megtekintésére

Ahhoz, hogy a fő és a munkavégző csomópontok megfelelően lássák a híd (bridged) forgalmat, biztosítania kell, hogy a net.bridge.bridge-nf-call-iptables értéke 1-re legyen állítva a konfigurációban. Először győződjön meg arról, hogy a br_netfilter modul be van töltve. Ezt a következő parancs kiadásával ellenőrizheti:

Opcionálisan kifejezetten is betöltheti a következő paranccsal:

Most futtathatja ezt a parancsot az érték 1-re állításához:

5. lépés: A Docker Cgroup illesztőprogram módosítása

Alapértelmezés szerint a Docker a következővel települ: cgroupfs mint cgroup illesztőprogram. A Kubernetes azt javasolja, hogy a Docker a következővel fusson, mint systemd illesztőprogrammal. Ha kihagyja ezt a lépést, és a következő lépésben megpróbálja inicializálni a kubeadm-et, a következő figyelmeztetést fogja kapni a terminálon:

Mind a master, mind a worker csomópontokon frissítse a cgroupdriver értéket a következő parancsokkal:

Ezután futtassa a következő parancsokat a Docker újraindításához és engedélyezéséhez a rendszerindításkor:

Miután ez be van állítva, rátérhetünk a szórakoztató részre, a Kubernetes fürt telepítésére!

6. lépés: A Kubernetes Master csomópont inicializálása

A Kubernetes fürt telepítésének első lépése a master csomópont elindítása. Miközben a master csomópont termináljában van, futtassa a következő parancsot a kubernetes-master:

Ha futtatja a fenti parancsot, és a rendszere nem felel meg az elvárt követelményeknek, például a minimális RAM-nak vagy CPU-nak, ahogy azt az Előfeltételek szakasz részletezi, figyelmeztetést fog kapni, és a fürt nem fog elindulni:

install Kubernetes InitError

Megjegyzés: Ha éles környezetre épít, érdemes mindig teljesíteni a minimális követelményeket a Kubernetes zökkenőmentes futtatásához. Ha azonban ezt az útmutatót tanulási céllal végzi, akkor a következő jelzőt (flag) adhatja a kubeadm init parancshoz a hibaüzenetek figyelmen kívül hagyásához:
sudo kubeadm init --ignore-preflight-errors=NumCPU,Mem --pod-network-cidr=10.244.0.0/16

Az alábbi képernyőkép mutatja, hogy az inicializálás sikeres volt. Hozzáadtunk egy jelzőt is a pod hálózat megadásához a 10.244.0.0 IP-címmel, ez az az alapértelmezett IP-cím, amelyet a kube-flannel használ. A pod hálózatról részletesebben a következő lépésben lesz szó.

install Kubernetes Kubeadm Init

A kimenetben látható a kubeadm join parancs (az IP-címünket elrejtettük) és egy egyedi token, amelyet a worker csomóponton és minden más olyan worker csomóponton futtatnia kell, amelyet csatlakoztatni szeretne ehhez a fürthöz. Ezután másolja ki ezt a parancsot, mert később szüksége lesz rá a worker csomóponton.

A kimenetben a Kubernetes néhány további parancsot is megjelenít, amelyeket normál felhasználóként kell futtatnia a master csomóponton, mielőtt elkezdené használni a fürtöt. Futtassuk ezeket a parancsokat:

Most már inicializáltuk a master csomópontot. Azonban be kell állítanunk a pod hálózatot is a master csomóponton, mielőtt csatlakoztatnánk a worker csomópontokat.

7. lépés: Pod hálózat telepítése

A pod hálózat megkönnyíti a szerverek közötti kommunikációt, és szükséges a Kubernetes fürt megfelelő működéséhez. További információkat olvashat a Kubernetes fürt hálózatkezeléséről a hivatalos dokumentációban. Ebben az útmutatóban a Flannel pod hálózatot fogjuk használni. A Flannel egy egyszerű overlay hálózat, amely megfelel a Kubernetes követelményeinek.

Mielőtt telepítenénk a pod hálózatot, ellenőriznünk kell a tűzfal állapotát. Ha engedélyezte a tűzfalat az Ubuntu szerver beállításáról szóló útmutató 5. lépésének követése után, először hozzá kell adnia egy tűzfal szabályt, hogy kivételt hozzon létre a porthoz6443 (a Kubernetes alapértelmezett portja) számára. Futtassa a következő ufw parancsokat mind a master, mind a worker csomópontokon:

Ezt követően futtathatja az alábbi két parancsot a pod hálózat telepítéséhez a master csomóponton:

Ez a környezetétől függően néhány másodperctől egy percig is eltarthat a flannel hálózat betöltéséhez. Futtassa a következő parancsot annak ellenőrzésére, hogy minden elindult-e:

A parancs kimenetének minden szolgáltatás állapotát futóként kell mutatnia, ha minden sikeres volt:

install Kubernetes Pod Status

Megtekintheti az összetevők egészségi állapotát is a get componentstatus parancs használatával:

install Kubernetes Component Status

Ennek a parancsnak van egy rövid formája is, a cs:

Component Status Short

Ha nem egészséges (unhealthy) állapotot lát, módosítsa a következő fájlokat, és törölje a (spec->containers->command) résznél azt a sort, amely ezt a kifejezést tartalmazza: - --port=0 :

Tegye ugyanezt ezzel a fájllal is:

Végül indítsa újra a Kubernetes szolgáltatást:

8. lépés: Worker csomópontok csatlakoztatása a Kubernetes fürthöz

Miután a kubernetes-master csomópont elindult és a pod hálózat készen áll, csatlakoztathatjuk a worker csomópontjainkat a fürthöz. Ebben az útmutatóban csak egy worker csomópontunk van, így azzal fogunk dolgozni. Ha több worker csomópontja van, bármikor követheti az alább ismertetett lépéseket a fürthöz való csatlakozáshoz.

Először jelentkezzen be a worker csomópontjára egy külön terminál munkamenetben. A kubeadm join parancsot fogja használni, amely a termináljában jelent meg, amikor inicializáltuk a master csomópontot a 6. lépésben. Futtassa a parancsot:

A fürthöz való csatlakozás befejeztével az alábbi képernyőképhez hasonló kimenetet kell látnia:

Worker Join

Miután a csatlakozási folyamat befejeződött, váltson a master csomópont termináljára, és futtassa a következő parancsot annak ellenőrzésére, hogy a worker csomópont csatlakozott-e a fürthöz:

A fenti parancs kimenetéről készült képernyőképen látható, hogy a worker csomópont csatlakozott a fürthöz:

install Kubernetes K8S Node Status

9. lépés: Alkalmazás telepítése a Kubernetes fürthöz

Ezen a ponton sikeresen beállított egy Kubernetes fürtöt. Tegyük használhatóvá a fürtöt egy szolgáltatás telepítésével. Az Nginx egy népszerű webszerver, amely hihetetlen sebességgel büszkélkedhet még több ezer kapcsolat esetén is. Telepíteni fogjuk az Nginx webszervert a fürthöz, hogy bebizonyítsuk, ezt a beállítást valós alkalmazásokban is használhatja.

Futtassa a következő parancsot a master csomóponton egy Kubernetes deployment létrehozásához az Nginx számára:

A létrehozott deployment megtekintéséhez használja a describe deployment parancsot:

Nginx Deployment

Ahhoz, hogy a(z) nginx szolgáltatás elérhető legyen az interneten keresztül, futtassa a következő parancsot:

NodePort Svc Create

A fenti parancs egy nyilvánosan elérhető szolgáltatást hoz létre az Nginx deploymenthez. Mivel ez egy nodeport típusú deployment, a Kubernetes egy portot rendel a szolgáltatáshoz a következő tartományból: 32000+.

Az aktuális szolgáltatásokat a következő parancs kiadásával kérdezheti le:

NodePort Svc Status

Látható, hogy a hozzárendelt portunk a(z) 32264. Jegyezze fel a terminálon megjelenő portot a következő lépésben való használathoz.

Az Nginx szolgáltatás sikeres telepítésének ellenőrzéséhez futtasson egy curl hívást a worker csomópontra a masterről. Cserélje ki a worker csomópont IP-címét és a fenti parancsból kapott portot:

Látnia kell az alapértelmezett Nginx index.html:

Curl Nginx Svc

Opcionálisan meglátogathatja a worker csomópont IP-címének és portjának kombinációját a böngészőjében, és megtekintheti az alapértelmezett Nginx index oldalt:

install Kubernetes Nginx Webpage

A következőképpen törölhet egy deploymentet a nevének megadásával. Például ez a parancs törli a deploymentünket:

Sikeresen teszteltük a klaszterünket!

Összegzés

Ebben az útmutatóban megtanulta, hogyan kell telepíteni egy Kubernetes klasztert Ubuntu 20.04-en. Beállított egy master és egy worker csomópontból álló klasztert. Sikerült telepítenie a Kubernetes eszközkészletet, létrehozott egy pod hálózatot, és csatlakoztatta a worker csomópontot a master csomóponthoz. Koncepciónkat egy Nginx webszerver alapvető telepítésével is teszteltük a klaszteren. Ez alapul szolgálhat az Ubuntu-n futó Kubernetes klaszterekkel való munkához.

Bár csak egy worker csomópontot használtunk, a klasztert tetszőleges számú csomóponttal bővítheti. Ha szeretne mélyebben elmerülni a DevOps-ban olyan automatizálási eszközökkel, mint az Ansible, van egy útmutatónk, amely részletesen bemutatja a Kubernetes klaszterek telepítését az Ansible és a Kubeadm segítségével – nézze meg. Ha szeretné megtanulni, hogyan kell PHP alkalmazást telepíteni egy Kubernetes klaszteren, tekintse meg ezt az útmutatót.

Kellemes számítógépezést!

author

Pranay Kapgate

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.