Jak ustawić tolerancje Kubernetes

Jak Ustawic Tolerancje Kubernetes



Dziś o tolerancji w Kubernetes dowiadujemy się za pomocą prostych i podstawowych przykładów. Ten artykuł ma na celu poznanie podstawowej koncepcji tolerancji w Kubernetes i sposobu jej implementacji w Kubernetes w celu zaplanowania zasobników. Ponieważ tolerancja i skazy działają razem, przeprowadzimy również krótką dyskusję na temat skaz, aby zrozumieć całą koncepcję skażenia i tolerancji w Kubernetes. Zacznijmy od podstawowych definicji skażenia i tolerancji.

Czym są tolerancje i skazy w Kubernetes?

Tolerancja i skaza w Kubernetes służą do zapewnienia, że ​​pody są umieszczane we właściwym węźle. Tolerancja jest zdefiniowana w specyfikacji poda, podczas gdy skazy są zdefiniowane w specyfikacji węzła. Gdy zastosujesz tolerancję do zasobnika, program planujący zaplanuje zasobniki w określonym węźle. Jednak skazy działają odwrotnie do tolerancji. Pozwala węzłowi odrzucić zaplanowane na nim pody. Pody mogą być planowane w węźle tylko wtedy, gdy mają zastosowane tolerancje z pasującymi skazami.

Kubernetes współpracuje z podami, klastrami, węzłami, zdarzeniami itp. W niektórych przypadkach, aby zarządzać tymi rzeczami, Kubernetes potrzebuje tolerancji i skaz. Tolerancja to realizacja procesu planowania. Pody muszą być zaplanowane, aby mogły działać poprawnie i mieć wystarczającą ilość zasobów, gdy są potrzebne do wykonania swojej operacji. Tolerancje są stosowane do strąków przeciwko skazom, aby nie miały żadnych przerw ani zakłóceń podczas pracy.







Skażenia w Kubernetes umożliwiają podowi odrzucenie planowania poda. Jest stosowany do węzła przy użyciu specyfikacji węzła „NodeSpec”. Harmonogram nie może umieścić poda w węźle, który ma skazę. Jeśli jednak musisz zaplanować pody w węźle, w którym zastosowano już skazę, musisz zadeklarować tolerancję wobec niej.



Tolerancja w Kubernetes umożliwia zaplanowanie poda w węźle, w którym zastosowano już skazę. Tolerancja poda jest stosowana przy użyciu specyfikacji PodSpec. Gdy zastosujesz tolerancję do zasobnika z pasującym skazą, program planujący może łatwo zaplanować zasobniki w określonym węźle.



Teraz przedstawimy scenariusz, który pomoże Ci zrozumieć, w jaki sposób możesz zaimplementować tolerancję na pod w Kubernetes. Zanim przejdziesz do sekcji implementacji, upewnij się, że spełniasz wszystkie wymagania wstępne.





Warunek wstępny:

Oto rzeczy, których potrzebujesz, aby zaimplementować tolerancję w węźle w Kubernetes:

  • Ubuntu 20.04 lub inna najnowsza wersja dowolnego systemu Linux
  • Minikube (najnowsza wersja)
  • Zainstalowana maszyna wirtualna w systemie Linux/Unix
  • Narzędzie wiersza poleceń Kubectl

Zakładając, że Twój system spełnia wszystkie wymagania wstępne, zacznijmy ustawiać tolerancję Kubernetes.



Krok 1: Uruchom terminal Minikube

Pierwszą rzeczą, którą musisz zrobić, to uruchomić terminal minikube, aby móc używać poleceń kubectl do implementacji tolerancji Kubernetes na węźle. Do uruchomienia minikube służy następująca komenda:

> uruchom minikuba

Po wykonaniu tego polecenia w terminalu otrzymasz następujące dane wyjściowe:

Krok 2: Uzyskaj listę aktywnych węzłów

Teraz, gdy uruchomiliśmy minikube, nasz system jest gotowy do ustawienia tolerancji na podach w Kubernetes. Zanim ustalimy tolerancję na strąkach, sprawdźmy, ile i jakie węzły już mamy. Aby to zrobić, używamy następującego kolejnego polecenia:

> kubectl pobierz węzły -The =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .efekt

Ta instrukcja zawiera listę wszystkich węzłów, które są skażone przez domyślną instalację Kubernetes. Zobaczmy najpierw wynik tego polecenia. Następnie omawiamy listę węzłów:

Ponieważ nie istnieją żadne węzły, które są tworzone i skażone przez domyślną instalację Kubernetes, a także nie utworzyliśmy specjalnie żadnego węzła, wynikiem jest . Z poprzedniego wyniku widzimy, że nie ma węzła. Dlatego najpierw tworzymy węzeł, a następnie ustawiamy tolerancję. Aby ustawić tolerancję na pod w Kubernetes, musimy najpierw wdrożyć aplikację w klastrze. W kilku następnych krokach pokazano, jak wdrożyć aplikację w klastrze.

Krok 3: Utwórz przestrzeń nazw

Najpierw tworzymy przestrzeń nazw w celu wdrożenia aplikacji w klastrze. Tutaj tworzymy aplikację z wartością „frontend” za pomocą następującego polecenia:

> kubectl tworzy interfejs ns

To polecenie tworzy przestrzeń nazw z wartością „frontend”. Zobacz następujące dane wyjściowe:

Krok 4: Wdróż kapsułę Nginx w przestrzeni nazw

Teraz wdróż moduł nginx w przestrzeni nazw, którą właśnie utworzyliśmy. Używamy następującego polecenia do wdrożenia nginx:

> kubectl uruchom nginx – obraz =nginx – interfejs przestrzeni nazw

Spowoduje to wdrożenie aplikacji w klastrze bez konfiguracji tolerancji w specyfikacji wdrożenia aplikacji. Za pomocą polecenia kubectl wdrażamy kapsułę nginx w interfejsie przestrzeni nazw:

  Opis tekstowy generowany automatycznie

Krok 5: Uzyskaj listę podów

Teraz sprawdźmy utworzone pody, aby zobaczyć ich statusy. Podane polecenie wyświetla listę wszystkich strąków i ich statusów:

> kubectl pobiera strąki -n nakładka

Ponieważ stworzyliśmy tylko nginx, to polecenie powinno wyświetlić ten strąk wraz z jego statusem. Zobacz następujące dane wyjściowe:

Krok 6: Przeanalizuj zdarzenia Kubernetes

Teraz przeanalizujmy zdarzenia w Kubernetes, abyśmy mogli odpowiednio ustawić tolerancję na podach. Używamy następującego polecenia kubectl, aby uzyskać listę zdarzeń w Kubernetes:

> Kubectl pobiera zdarzenia -n nakładka

Zawiera listę wszystkich zdarzeń powiązanych z wartością front-end wraz z ich właściwościami, takimi jak typ, przyczyna, obiekt i komunikat. Zobacz podaną listę w następującym wyjściu:

  Opis tekstowy generowany automatycznie

Jak widać z poprzedniego wyniku, nginx pod jest zaplanowany z określoną tolerancją. Właściwość „message” pokazuje listę akcji, które są wykonywane w trakcie procesu.

Krok 7: Sprawdź stan podów

Ostatnim krokiem jest ponowne sprawdzenie statusu poda, który stworzyliśmy wcześniej, aby upewnić się, że został pomyślnie zaplanowany w określonym i poprawnym węźle. W tym celu używamy następującego polecenia kubectl:

> kubectl pobiera strąki -n nakładka

Jak widać na poprzednim wyjściu, kapsuła może teraz działać na skażonym węźle, ponieważ tolerancja jest przeciwko niemu ustawiona.

Wniosek

W tym przewodniku omówiliśmy skazy i tolerancję. Dowiedzieliśmy się o podstawowym działaniu skażeń i tolerancji. Następnie zaimplementowaliśmy tolerancję na strąku. Na prostym przykładzie nauczyliśmy się ustawiać tolerancję na węźle w Kubernetes.