Ako nastaviť tolerancie Kubernetes

Ako Nastavit Tolerancie Kubernetes



Dnes sa učíme o tolerancii v Kubernetes pomocou jednoduchých a základných príkladov. Tento článok je navrhnutý tak, aby sa naučil základnú koncepciu tolerancie v Kubernetes a ako ju možno implementovať v Kubernetes na plánovanie modulov. Keďže tolerancia a kazy spolupracujú, budeme mať krátku diskusiu aj o škvrnách, aby sme pochopili celý koncept kazu a tolerancie v Kubernetes. Začnime so základnými definíciami skazy a tolerancie.

Aké sú tolerancie a nedostatky v Kubernetes?

Tolerancia a znečistenie v Kubernetes sa používajú na zabezpečenie toho, aby boli struky umiestnené v správnom uzle. Tolerancia je definovaná v špecifikácii pod, zatiaľ čo kazy sú definované v špecifikácii uzla. Keď použijete toleranciu na modul, umožní to plánovaču naplánovať moduly na konkrétnom uzle. Nákazy však pôsobia opačne ako tolerancia. Umožňuje uzlu odmietnuť moduly, ktoré majú byť na ňom naplánované. Lusky sa môžu naplánovať na uzol iba vtedy, ak sa na ne vzťahujú tolerancie so zodpovedajúcimi škvrnami.

Kubernetes pracuje s modulmi, klastrami, uzlami, udalosťami atď. V niektorých prípadoch na spravovanie týchto vecí potrebuje Kubernetes tolerancie a kazy. Tolerancia je implementácia procesu plánovania. Moduly je potrebné naplánovať tak, aby mohli správne fungovať a aby mali dostatok zdrojov v prípade potreby na vykonanie operácie. Na struky sa uplatňujú tolerancie proti skaze, aby nedochádzalo k ich prerušovaniu alebo rušeniu pri práci.







Nákazy v Kubernetes umožňujú podu odmietnuť plánovanie pod. Aplikuje sa na uzol pomocou špecifikácie uzla „NodeSpec“. Plánovač nie je schopný umiestniť modul na uzol, ktorý má na sebe škvrnu. Ak však potrebujete naplánovať struky na uzol, kde je už aplikovaná škvrna, musíte voči nej deklarovať toleranciu.



Tolerancia v Kubernetes umožňuje naplánovať modul v uzle, kde je už aplikovaná poškvrna. Tolerancia na podu sa aplikuje pomocou špecifikácie pod „PodSpec“. Keď aplikujete toleranciu na tobolku so zodpovedajúcou škvrnou, plánovač môže jednoducho naplánovať struky na konkrétnom uzle.



Teraz vám predstavíme scenár, ktorý vám pomôže pochopiť, ako môžete implementovať toleranciu na pod v Kubernetes. Predtým, ako prejdete do sekcie implementácie, uistite sa, že máte všetky nevyhnutné požiadavky.





Predpoklad:

Nasledovné sú veci, ktoré potrebujete na implementáciu tolerancie v uzle v Kubernetes:

  • Ubuntu 20.04 alebo akákoľvek iná najnovšia verzia akéhokoľvek systému Linux
  • Minikube (najnovšia verzia)
  • Nainštalovaný virtuálny stroj vo vašom systéme Linux/Unix
  • Nástroj príkazového riadku Kubectl

Za predpokladu, že váš systém spĺňa všetky požiadavky predpokladov, začnime nastavovať toleranciu Kubernetes.



Krok 1: Spustite terminál Minikube

Prvá vec, ktorú musíte urobiť, je spustiť terminál minikube, aby ste mohli použiť príkazy kubectl na implementáciu tolerancie Kubernetes na uzle. Na spustenie minikube sa používa nasledujúci príkaz:

> spustiť minikube

Po vykonaní tohto príkazu dostanete vo svojom termináli nasledujúci výstup:

Krok 2: Získajte zoznam aktívnych uzlov

Teraz, keď sme spustili minikube, náš systém je pripravený nastaviť toleranciu na podoch v Kubernetes. Predtým, ako na strukoch nastavíme toleranciu, skontrolujeme, koľko uzlín a aké uzliny už máme. Na tento účel použijeme nasledujúci príkaz:

> kubectl získať uzly - =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .účinok

Táto inštrukcia uvádza všetky uzly, ktoré sú poškodené predvolenou inštaláciou Kubernetes. Pozrime sa najprv na výstup tohto príkazu. Potom diskutujeme o zozname uzlov:

Keďže neexistujú žiadne uzly, ktoré by boli vytvorené a poškvrnené predvolenou inštaláciou Kubernetes a tiež sme špeciálne nevytvorili žiadny uzol, výsledok je . Z predchádzajúceho výstupu vidíme, že neexistuje žiadny uzol. Preto najprv vytvoríme uzol a potom nastavíme toleranciu. Ak chcete nastaviť toleranciu na pod v Kubernetes, musíme najprv nasadiť aplikáciu do klastra. Niekoľko nasledujúcich krokov ukazuje, ako nasadiť aplikáciu v klastri.

Krok 3: Vytvorte priestor názvov

Najprv vytvoríme menný priestor na nasadenie aplikácie v klastri. Tu vytvoríme aplikáciu s hodnotou „frontend“ pomocou nasledujúceho príkazu:

> kubectl vytvoriť ns frontend

Tento príkaz vytvorí priestor názvov s hodnotou „frontend“. Pozrite si nasledujúci výstup:

Krok 4: Nasaďte modul Nginx do priestoru názvov

Teraz nasaďte modul nginx do menného priestoru, ktorý sme práve vytvorili. Na nasadenie nginx používame nasledujúci príkaz:

> kubectl run nginx – obrázok =nginx – frontend menného priestoru

Toto nasadí aplikáciu v klastri bez konfigurácie tolerancie v špecifikácii nasadenia aplikácie. Pomocou príkazu kubectl nasadíme modul nginx na frontend priestoru názvov:

  Text Popis sa vygeneruje automaticky

Krok 5: Získajte zoznam modulov

Teraz skontrolujme vytvorené moduly, aby sme videli ich stavy. Daný príkaz uvádza zoznam všetkých modulov a ich stavov:

> kubectl dostať strúčiky -n frontend

Keďže sme vytvorili iba nginx, tento príkaz by mal vypísať tento modul s jeho stavom. Pozrite si nasledujúci výstup:

Krok 6: Analyzujte udalosti Kubernetes

Teraz analyzujme udalosti v Kubernetes, aby sme mohli zodpovedajúcim spôsobom nastaviť toleranciu na podoch. Na získanie zoznamu udalostí v Kubernetes používame nasledujúci príkaz kubectl:

> kubectl dostať udalosti -n frontend

Toto uvádza zoznam všetkých udalostí, ktoré sú spojené s hodnotou front-end spolu s ich vlastnosťami, ako je typ, dôvod, objekt a správa. Pozrite si uvedený zoznam v nasledujúcom výstupe:

  Text Popis sa vygeneruje automaticky

Ako môžete vidieť z predchádzajúceho výstupu, podložka nginx je naplánovaná so špecifickou toleranciou. Vlastnosť „správa“ zobrazuje zoznam akcií, ktoré sa vykonávajú počas procesu.

Krok 7: Skontrolujte stav modulov

Posledným krokom je znova skontrolovať stav modulu, ktorý sme predtým vytvorili, aby sme sa uistili, že je úspešne naplánovaný na konkrétnom a správnom uzle. Na to použijeme nasledujúci príkaz kubectl:

> kubectl dostať strúčiky -n frontend

Ako je možné vidieť v predchádzajúcom výstupe, modul teraz môže bežať na poškodenom uzle, pretože tolerancia je nastavená proti nemu.

Záver

V tejto príručke sme skúmali kazy a toleranciu. Dozvedeli sme sa o základnom fungovaní kazov a tolerancii. Potom sme implementovali toleranciu na pod. Pomocou jednoduchého príkladu sme sa naučili, ako nastaviť toleranciu na uzle v Kubernetes.