Jak nastavit tolerance Kubernetes

Jak Nastavit Tolerance Kubernetes



Dnes se o toleranci v Kubernetes učíme pomocí jednoduchých a základních příkladů. Tento článek je navržen tak, aby se seznámil se základním konceptem tolerance v Kubernetes a jak ji lze implementovat v Kubernetes pro plánování modulů. Vzhledem k tomu, že tolerance a poskvrny spolupracují, povedeme krátkou diskusi o poskvrnách, abychom porozuměli celému konceptu poskvrny a tolerance v Kubernetes. Začněme základními definicemi poskvrny a tolerance.

Jaké jsou tolerance a závady v Kubernetes?

Tolerance a znečištění v Kubernetes se používají k zajištění toho, aby byly pody umístěny ve správném uzlu. Tolerance je definována ve specifikaci pod, zatímco skvrny jsou definovány ve specifikaci uzlu. Když použijete toleranci na pod, umožní to plánovači naplánovat pody na konkrétním uzlu. Poskvrny však působí opačně, než je tolerance. Umožňuje uzlu odmítnout moduly, které na něm mají být naplánovány. Lusky mohou být naplánovány na uzlu pouze v případě, že jsou na ně aplikovány tolerance s odpovídajícími skvrnami.

Kubernetes pracuje s pody, clustery, uzly, událostmi atd. V některých případech potřebuje Kubernetes ke správě těchto věcí tolerance a skvrny. Tolerance je implementace procesu plánování. Moduly musí být naplánovány tak, aby mohly správně fungovat a aby měly dostatek zdrojů, když je to potřeba k provedení jejich operace. Na lusky se uplatňují tolerance proti zašpinění, aby nedocházelo k přerušení nebo narušení při práci.







Poskvrny v Kubernetes umožňují podu odmítnout plánování podu. Aplikuje se na uzel pomocí specifikace uzlu „NodeSpec“. Plánovač není schopen umístit modul na uzel, který má na sobě skvrnu. Pokud však potřebujete naplánovat lusky na uzel, kde je již znečištění aplikováno, musíte vůči němu deklarovat toleranci.



Tolerance v Kubernetes umožňuje naplánování podu v uzlu, kde je již aplikováno pošpinění. Tolerance na podu se aplikuje pomocí specifikace pod „PodSpec“. Když aplikujete toleranci na pod s odpovídajícím znečištěním, plánovač může snadno naplánovat pody na konkrétní uzel.



Nyní nám dovolte představit scénář, který vám pomůže pochopit, jak můžete implementovat toleranci na pod v Kubernetes. Než přistoupíte k části implementace, ujistěte se, že máte všechny nezbytné požadavky.





Předpoklad:

K implementaci tolerance na uzlu v Kubernetes potřebujete následující věci:

  • Ubuntu 20.04 nebo jakákoli jiná nejnovější verze jakéhokoli systému Linux
  • Minikube (nejnovější verze)
  • Nainstalovaný virtuální stroj ve vašem systému Linux/Unix
  • Nástroj příkazového řádku Kubectl

Za předpokladu, že váš systém splňuje všechny požadavky předpokladů, začněme s nastavením tolerance Kubernetes.



Krok 1: Spusťte Minikube Terminal

První věc, kterou musíte udělat, je spustit terminál minikube, abyste mohli použít příkazy kubectl pro implementaci tolerance Kubernetes na uzlu. Ke spuštění minikube se používá následující příkaz:

> spustit minikube

Po provedení tohoto příkazu získáte ve svém terminálu následující výstup:

Krok 2: Získejte seznam aktivních uzlů

Nyní, když jsme spustili minikube, je náš systém připraven nastavit toleranci na podech v Kubernetes. Než nastavíme toleranci na lusky, zkontrolujeme, kolik uzlin a jaké uzliny již máme. K tomu použijeme následující následující příkaz:

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

Tato instrukce uvádí všechny uzly, které jsou poškozeny výchozí instalací Kubernetes. Nejprve se podívejme na výstup tohoto příkazu. Poté diskutujeme o seznamu uzlů:

Protože neexistují žádné uzly, které by byly vytvořeny a poskvrněny výchozí instalací Kubernetes, a také jsme konkrétně nevytvořili žádný uzel, výsledek je . Z předchozího výstupu vidíme, že neexistuje žádný uzel. Nejprve tedy vytvoříme uzel a poté nastavíme toleranci. Chcete-li nastavit toleranci na pod v Kubernetes, musíme nejprve nasadit aplikaci na cluster. Následujících několik kroků ukazuje, jak nasadit aplikaci v clusteru.

Krok 3: Vytvořte jmenný prostor

Nejprve vytvoříme jmenný prostor pro nasazení aplikace v clusteru. Zde vytvoříme aplikaci s hodnotou „frontend“ pomocí následujícího příkazu:

> kubectl vytvořit ns frontend

Tento příkaz vytvoří jmenný prostor s hodnotou „frontend“. Podívejte se na následující výstup:

Krok 4: Nasaďte Nginx Pod do jmenného prostoru

Nyní nasaďte modul nginx na jmenný prostor, který jsme právě vytvořili. K nasazení nginx používáme následující příkaz:

> kubectl spustit nginx – obraz =nginx – frontend jmenného prostoru

Tím se nasadí aplikace v clusteru bez konfigurace tolerance ve specifikaci nasazení aplikace. Pomocí příkazu kubectl nasadíme nginx pod na frontend jmenného prostoru:

  Text Popis automaticky vygenerován

Krok 5: Získejte seznam podů

Nyní se podívejme na stav vytvořených modulů. Daný příkaz vypíše všechny pody a také jejich stavy:

> kubectl dostat lusky -n frontend

Protože jsme vytvořili pouze nginx, tento příkaz by měl vypsat tento modul s jeho stavem. Podívejte se na následující výstup:

Krok 6: Analyzujte události Kubernetes

Nyní pojďme analyzovat události v Kubernetes, abychom mohli odpovídajícím způsobem nastavit toleranci na podech. K získání seznamu událostí v Kubernetes používáme následující příkaz kubectl:

> kubectl získat události -n frontend

Zde jsou uvedeny všechny události, které jsou spojeny s hodnotou front-end, spolu s jejich vlastnostmi, jako je typ, důvod, objekt a zpráva. Podívejte se na uvedený seznam v následujícím výstupu:

  Text Popis automaticky vygenerován

Jak můžete vidět z předchozího výstupu, podložka nginx je naplánována se specifickou tolerancí. Vlastnost „message“ zobrazuje seznam akcí, které se v průběhu procesu provádějí.

Krok 7: Zkontrolujte stav podů

Posledním krokem je znovu zkontrolovat stav podu, který jsme vytvořili dříve, abychom se ujistili, že je úspěšně naplánován na konkrétní a správný uzel. K tomu použijeme následující příkaz kubectl:

> kubectl dostat lusky -n frontend

Jak je vidět v předchozím výstupu, modul nyní může běžet na poskvrněném uzlu, protože je vůči němu nastavena tolerance.

Závěr

V této příručce jsme prozkoumali skvrny a toleranci. Dozvěděli jsme se o základním fungování kazů a toleranci. Potom jsme implementovali toleranci na pod. Pomocí jednoduchého příkladu jsme se naučili, jak nastavit toleranci na uzlu v Kubernetes.