Co to jest skażenie?
Połączenie strąków, węzłów i klastrów działa razem. Krągi są przyciągane do węzłów przez właściwość powinowactwa węzłów, podczas gdy skaze ograniczają kapsuły do zaplanowania węzłów. Tolerancja i skacze współpracują ze sobą, aby upewnić się, że żaden kapsułek nie zostanie zaplanowany w niewłaściwym węźle. Właściwości te zapewniają, że kapsuły są zaplanowane w odpowiednim węźle, a także zarządzają obciążeniem węzłem, dystrybuując równe obciążenie na wszystkich węzłach w klastrze. Scale są zdefiniowane dla węzła za pomocą specyfikacji węzła, podczas gdy POD używają tolerancji ze specyfikacji POD.
Taints to ograniczenia, które umożliwiają węzeł odstraszanie strąków, które są planowane w węźle. Z drugiej strony tolerancja działa przeciwko skażeniu i pozwala na zaplanowanie kapsuł. Dla kapsułów może istnieć więcej niż jedna skażanka, aby zapewnić, że kapsuły nie zostaną zaplanowane, chyba że będą tolerować określoną skalę. Tutaj pokazujemy, jak korzystać z skandalów na kapsułach Kubernetes za pomocą prostego, krótkiego i łatwego przykładu.
Wymagania wstępne
Upewnij się, że masz w systemie zainstalowane następujące narzędzia przed kontynuowaniem tego przewodnika. Dzięki tym podstawowym narzędziom nie będziesz mógł używać skażeć w węzłach Kubernetes.
Upewnij się, że te narzędzia są poprawnie zainstalowane i skonfigurowane w systemie, aby nie mieć problemu za pomocą skalania w węzłach Kubernetes. Zakładając, że przygotujesz swój system z zainstalowanymi wszystkimi tymi narzędziami, przechodzimy do następnej sekcji.
Jak używać skażonych w węzłach Kubernetes?
Tutaj przedstawimy prosty scenariusz, który pomoże Ci nauczyć się korzystać z skazania w węźle Kubernetes. Pozwól nam zacząć!
Krok # 1: Rozpocznij klaster minikube
Najpierw uruchom klaster minikube, abyś mógł użyć poleceń Kubectl i uruchomić aplikację. Klaster minikube umożliwia wdrożenie węzłów, kapsułów, a nawet klastrów w środowisku Kubernetes. Dlatego konieczne jest utrzymanie minikupu w trybie aktywnym za pomocą następującego polecenia:
kalsoom@kalsoom-virtualbox> minikube startTo aktywuje klaster minikube i sprawi, że środowisko Kubernetes jest gotowe do korzystania z kroku w węźle.
Krok 2: Pobierz listę węzłów
Jak omówiliśmy powyżej, środowisko Kubernetes opiera się na węzłach, kapsułach i klastrach. Kapsuły są zaplanowane na węzłach i musimy zdefiniować skazę dla tego węzła, aby zapobiec zaplanowaniu strąków w tym węźle. Tak więc tutaj wyświetlamy listę węzłów, aby sprawdzić, który węzeł ma już zdefiniowaną dla niego skażoną skazę. Ponadto użyjemy następującego polecenia:
kalsoom@kalsoom-virtualbox> kubectl get węzły -o = custom-columns = nodeName:.metadane.Imię, Taintkey:.Spec.Scales [*].Klucz, taintValue:.Spec.Scales [*].wartość, tainteffect:.Spec.Scales [*].efektZ powyższego wyjścia możemy zauważyć, że żaden podnośnik nie jest skażony domyślną instalacją Kubernetes, abyśmy mogli zmęczyć ten węzeł.
Krok # 3: Zakończenie węzła
Węzeł można zmęczyć za pomocą następującego polecenia:
kalsoom@kalsoom-virtualbox> kubectl skazania węzłów minikupe app = frontend: noscheduleJak widać na wyjściu, węzeł „minikube” został skażony efektem „Noschedule” o nazwie kluczowej „aplikacja” o wartości „frontend”. Ograniczyło to kapsuły do zaplanowania w węźle. Tak więc teraz nie można umieścić kapsułów w tym węźle, dopóki tolerancja nie zostanie zdefiniowana w stosunku do skazi.
Krok # 4: Zaplanuj kapsuły w węźle
W tym kroku spróbujemy zaplanować kapsułkę w węźle, który skażeliśmy w poprzednim kroku. Wdrażamy kapsuły na klastrze, który nie ma żadnej tolerancji zdefiniowanej w specyfikacji wdrażania aplikacji. Zobacz proces podany poniżej:
Krok # 4a: Utwórz przestrzeń nazw
Najpierw użyj podanego polecenia tutaj, aby utworzyć przestrzeń nazw:
kalsoom@kalsoom-virtualbox> kubectl stwórz NS FrontendKrok # 4b: Uruchom plik Nginx w przestrzeni nazw
Teraz uruchom plik Nginx w przestrzeni nazw, którą właśnie stworzyliśmy, używając następującego polecenia:
kalsoom@kalsoom -virtualbox> kubectl run nginx -image = nginx -namespace frontendKrok # 4C: Sprawdź status PODS
Teraz sprawdź status kapsuł, aby sprawdzić, czy są one zaplanowane na węzłach, czy nie. Ponieważ dla klastra nie ma tolerancji, kapsułkę nie należy zaplanować w żadnym węźle w klastrze. Sprawdźmy status kapsuł z poleceniem podanym poniżej:
kalsoom@kalsoom -virtualbox> kubectl get Pods -n FrontendStatus kapsuły jest „oczekujący”, co oznacza, że nie został zaplanowany w żadnym węźle. Możemy potwierdzić, czy jest on zaplanowany w dowolnym węźle w klastrze, czy nie, sprawdzając zdarzenia za pomocą następującego polecenia:
kalsoom@kalsoom -virtualbox> kubectl get Events -n FrontendZe wyjścia widać, że żaden węzeł nie jest dostępny, na których można zaplanować, ponieważ dla węzłów nie ma tolerancji.
Wniosek
Nauczyliśmy się, jak korzystać z klar w węzłach Kubernetes. Badamy, czym jest skażenie i jaka funkcja wykonuje w środowisku Kubernetes. Nauczyliśmy się z tego artykułu, że tolerancja i skażenie idą w parze. Taints są zdefiniowane dla węzłów w specyfikacji węzła, podczas gdy tolerancja jest zdefiniowana dla podsów w specyfikacji POD. Scuchy ograniczają, że kapsuły mają być zaplanowane w węźle, podczas gdy tolerancja działa przeciwko skażeniu i pozwala na zaplanowanie podsum.