Co to jest eksmitowana kapsułka?
Po osiągnięciu limitu dysku lub pamięci węzła flaga na węźle Kubernetes jest ustawiona tak, aby sygnalizować, że jest on obciążony. Ta flaga zapobiega również świeżych alokacjach w tym węźle, wywołując procedurę eksmisji, aby zwolnić niektóre zasoby.
To jest kubelet dla węzła pod ciśnieniem, który poradzi sobie z procesem eksmisji. Ten poradzi sobie z zawieszającymi się kapsułami, dopóki zużyte zasoby węzła spadną poniżej progu eksmisji, w którym to momencie Kubelet zakończy wszystkie pojemniki na POD i ustawę podfazę na nieudaną.
Jeśli za wdrożenie jest odpowiedzialne za eksmitowany kapsułek, wdrożenie tworzy nowy kapsułek dla Kubernetes.
Kiedy strąki zostaną eksmitowane?
To rozróżnienie ma związek z tym, jak Kubernetes obsługuje ciśnienie zasobów. Jeśli zasoby węzłowe stają się rzadkie, Kubernetes musi eksmitować kapsuły, proces jest znany jako eksmisja na ciśnienie węzłów. Harmonogram węzłów może pomieścić procesor, który jest w pełni zajęty; Dlatego eksmisja nie jest konieczna.
Musi eksmitować kapsuły z węzła i spróbować umieścić je w innym węźle, jeśli pamięć jest niewystarczająca. Jest to znane jako eksmisja z powodu ograniczeń pamięci. Eksmisja na ciśnienie węzłów może być również spowodowana brakiem miejsca na dysku.
Jakie czynniki rozważa Kubernetes przy podejmowaniu decyzji, które strąki eksmitują?
Ciśnienie węzłów jest spowodowane eksmitowanymi kapsułami na podstawie ograniczeń zasobów, takich jak pamięć lub przestrzeń dysku, jak wspomnieliśmy powyżej. Krągi w stanie nieudanym są pierwszymi eksmitami, ponieważ nie działają, ale mogą nadal konsumować zasoby. Kubernetes następnie analizuje działające kapsuły.
Wykonanie kapsuły, które wykorzystują najwięcej pamięci, nie będzie działać, ponieważ najprawdopodobniej jest to aktywny kapsułek, który będzie trudny do wdrożenia. Zamiast tego Kubernetes dokonuje tego wyboru w oparciu o dwie różne klasy: QoS (jakość usług) i priorytet.
Co następuje, gdy eksmitowany jest kapsuł?
Po wykryciu stanu krytycznego, Kubernetes wykonuje sprzątanie (tak, interval gospodarstwa domowego jest oficjalnym terminem interwału monitorowania eksmisji) i eksmituje kapsuły. Ta procedura „ekscytuje” (kończy) kapsułkę i pojemniki, które ją zbudowały. Domyślnie Kubernetes nie rozróżnia bardzo ważnych, a wcale ważnych strąków; Ma tylko jeden obowiązek, który jest odzyskaniem zasobów.
Obciążenia zarządzane przez zasób obciążenia lub wdrożenie automatycznie wytworzą nowe kapsuły i usuną eksmitowane kapsuły.
Pomimo faktu, że eksmitowane strąki zostały zakończone i nie powinny już konsumować żadnych zasobów z węzła, pozostają - a Kubernetes nadal zarządza nimi. Wraz ze wzrostem liczby eksmitowanych kapsuł może to prowadzić do wzrostu liczby zasobów wymaganych w administracji Kubernetes.
Teraz spróbujemy wymyślić, jak znaleźć eksmitowaną kapsułę i pomyślnie ją usunąć. Istnieje kilka wymagań, które należy początkowo spełnić.
Warunek wstępny
Aby uruchomić polecenia do usunięcia eksmitowanych kapsuł, najpierw będziemy musieli skonfigurować klaster minikupu na naszym komputerze. Ubuntu 20.04 został użyty do wdrożenia poleceń usuwania eksmitowanych kapsuł w tym temacie. Możemy również wykorzystać do tego nasz preferowany system operacyjny, ponieważ mamy już zainstalowany kubectl. Należy go zainstalować przed uruchomieniem poleceń.
Teraz nadszedł czas, aby założyć terminal. Jedną z opcji jest użycie paska aplikacji naszego systemu operacyjnego, aby dotrzeć do terminalu. Innym sposobem jest użycie skrótu klawiatury „ctrl + alt + t.„Aby uruchomić terminal, wybierz jedną z tych opcji. Najpierw musimy uruchomić klaster minikube, który był wcześniej wdrożony na Ubuntu 20.04. Teraz uruchomimy miniKube, wpisując następujące polecenie do terminalu. Odpowiednie wyjście dla poniższej instrukcji jest dołączone tutaj.
Jak wykryć eksmitowaną kapsułkę?
Aby znaleźć dokładną liczbę eksmitowanych kapsułów, wykonaj następujące polecenie. To polecenie wyświetla listę kapsułów, które zostały eksmitowane z twojego systemu. Odpowiednie wyjście dla poniższej instrukcji jest dołączone tutaj.
Teraz wypróbujmy inną formę tego samego polecenia. Dodaliśmy -C na koniec polecenia, jak widać. Reszta instrukcji jest niezmienna od powyższego. Powie ci, ile strąków zostało eksmitowanych. W naszym scenariuszu nie ma eksmitowanych strąków. W rezultacie, jak widać w końcowym wierszu załączonego zrzutu ekranu, polecenie zwraca 0. Odpowiednie wyjście dla poniższej instrukcji jest dołączone tutaj.
Jeśli twój system ma jakieś eksmitowane kapsuły, powyższe polecenie wyświetli liczbę, na przykład 10, 3, 9 i tak dalej.
Jak można ręcznie wyczyścić eksmitowane strąki?
Jeśli nie chcesz czekać na osiągnięcie progu kolekcji śmieci, możesz ręcznie zniszczyć kapsuły za pomocą Kubectl. W pewnym czasie każda zidentyfikowana eksmitowana kapsuł.
To polecenie może pomóc w ręcznym oczyszczeniu eksmitowanych strąków. Odpowiednie wyjście dla poniższej instrukcji jest dołączone tutaj.
Wniosek
Eksmisja jest procedurą celowego porażki jednego lub nawet więcej niż jednego kapsuły na dowolnym z węzłów głodnych zasobów. W tym samouczku poinformowaliśmy o eksmitowanych strąkach. Omówiliśmy również, jak usunąć eksmitowaną kapsułkę w prostych krokach. Teraz możesz zaimplementować ten sam przewodnik w swoim systemie za pomocą Kubectl i zobaczyć, ile eksmitowanych strąków istnieje w twoim systemie. Możesz teraz wymienić je wszystkie i usunąć wybrane.