Kubectl Force Usuń kapsułkę

Kubectl Force Usuń kapsułkę
Korzystanie z poleceń Kubectl, usunięcie kapsułki z węzła Kubernetes jest prostą operacją i nie wymaga długich kroków. Niezależnie od tego, czy chcesz debugować węzeł, przeprowadzić aktualizację, czy zmniejszyć rozmiar klastra, usuwanie Pods jest prostym procesem. Jednak przed usunięciem kapsuły należy przejść przez zestaw kroków, aby zapewnić płynne działanie aplikacji.

W tym artykule omówimy te kroki. Należy jednak pamiętać, że pośpiech ten proces może spowodować błędy i przestoje aplikacji. Teraz omówmy szczegółowo temat.

Jak usunąć kapsuły Kubernetes najłatwiejszy sposób?

Najpierw musisz wymienić kapsuły, aby usunąć post w najbardziej wydajny sposób. Możesz to zrobić, jeśli użyjesz polecenia GET PODS, które podano poniżej.

$ kubectl zdobądź kapsułki -o szerokie

Tutaj widać, że polecenie Get Pods wymienione w podsumowaniu ze szczegółami.

Teraz, jeśli usuniemy kapsuł. Wpisz następujące polecenie:

$ Kubectl delete POD-trzech

Powyższe polecenie, w którym określiliśmy nazwę POD (POD-TREES) Usunęło POD z powodzeniem.

$ kubectl zdobądź kapsułki -o szerokie

Wymieniając wszystkie kapsuły, możesz potwierdzić, że ten, o którym mowa, został usunięty.

Jak możesz zweryfikować na powyższym zdjęciu, nie ma „kapsułki.'

Jak wymusić usunięcie kapsuł Kubernetes?

Dlaczego wymagane jest usunięcie siły kapsułki? Po przekroczeniu limitu czasu może utknąć w stanie zakończenia/nieznanym w nieosiągalnym węźle. Te statusy mogą również wystąpić, gdy użytkownik próbuje wdzięcznie usunąć kapsułkę z niedostępnego węzła. W niektórych sytuacjach możesz mocno usunąć/usunąć kapsułkę.

Niezależnie od tego, czy usunięcie siły jest skuteczne w niszczeniu kapsułki, nazwa zostanie natychmiast usunięta z apiserver. Umożliwiłoby to kontrolerowi Statefulset ustanowienie zastępującej kapsuły w tę samą tożsamość; Może to doprowadzić do powielania już działającego kapsuła, który, jeśli wspomniany podnośnik może nadal wchodzić w interakcje z innymi członkami Statefulset, naruszyłby tylko jedną semantykę, którą stworzył Statefuls.

Ręczne usunięcie siły musi być stosowane ostrożnie, ponieważ może to złamać przynajmniej jedną z semantyki statefulset. Statefulsets można używać do wykonywania aplikacji rozproszonych i klastrowanych, które wymagają spójnej tożsamości sieciowej i utrzymującego się przechowywania.

Konfiguracja tych aplikacji jest często oparta na zespole zawierającym z góry określoną liczbę członków o stałej tożsamości. Wielu członków dzielących te same tożsamości może być niebezpieczne i może skończyć w utraty danych.

Po usunięciu stadousu Statefulset Force upewnisz się, że nigdy nie będzie już komunikował się z innymi kapsułami w Statefulset i że jego tożsamość może być bezpiecznie uwolniona za wymianę.

Postępuj zgodnie z tymi procedurami, aby mocno zniszczyć kapsułkę za pomocą kubectl> = 1.5:

$ kubectl Usuń PODS-IMA-POD-HAGHER-PERIOD = 0-FORCE

Jeśli używasz kubectl> = 1.4, możesz pominąć argument -force i zamiast tego użyć:

$ kubectl Usuń PODS-IMA-POD-HAGHER-ARIOD = 0

Teraz, używając powyżej, usuń POD „Podwójny”:

$ kubectl delete POD -W -W-FORce-Grave-okres = 0 --Namespace = domyślnie

Oto wynik powyższego polecenia po wykonaniu.

Należy pamiętać, że usunięcia Force POD nie opierają się na potwierdzeniu Kubeleta, że ​​kapsuł.

Jeśli POD pozostaje w stanie nieznanym po uruchomieniu tych poleceń, użyj następującego polecenia, aby usunąć je z klastra:

$ Kubectl Patch POD PODWO -p '"Metadata": "finalizers": null' '

Sprawdź, czy kapsułka została usunięta.

Jak usunąć kapsuły z węzła jednocześnie?

Jeśli Twój węzeł ma jakieś nieistotne kapsuły lub stadoficzne, możesz skorzystać z polecenia Kubectl Drenag. Ten krok usunie wszystkie kapsuły z węzła. Przed postępem sprawdź dwukrotnie tożsamość usuwanego węzła i upewnij się, że kapsuły w określonym węźle mogą zostać bezpiecznie zakończone. Zadanie zostanie dla Ciebie wykonane z następującą instrukcją.

$ kubectl zdobądź węzły

Po poleceniu GET POD użyj następującego cytowanego polecenia podane poniżej.

Następnie spróbuj użyć następujących cytowanych instrukcji, aby spuścić wszystkie kapsuły.

$ kubectl Drenain

Aby upewnić się, że w węźle nadal nie działają żadne kapsuły, wykonaj polecenie GET PODS. Jeśli używasz noexecute do uruchamiania kapsułów, nadal będą w węźle.

Wykonaj polecenie drenażu jeszcze raz. Ale tym razem należy uwzględnić flagę. To wyeliminuje wszystkie kapsuły z węzła. Na koniec użyj polecenia Kubectl Usuń, aby usunąć węzeł z odpowiedniego klastra.

Jak pozwolić kapsułom z powrotem na węzły?

Po zakończeniu wykonywania konserwacji w węźle użyj polecenia Kubectl Uncordon, aby ponownie włączyć planowanie tego węzła. Następnie, gdy strąki będą dostępne do planowania, pojawią się ponownie w tym węźle.

$ Kubectl Uncordon Docker-Desktop

Jeśli masz nowo nieskordoniczny węzeł lub nowy węzeł w klastrze, równoważenie poszczególnych strąków może stanowić problem. Chociaż najlepiej jest pozwolić Kubernetes Scheduler przydzielić kapsuły w razie potrzeby po zmianie wdrożenia/statefulset, możesz wymusić proces, usuwając kapsuły i planując je gdzie indziej, stosując niektóre z wcześniejszych faz.

Wniosek

Może być konieczne usunięcie pojedynczego kapsuły lub wielu kapsuł z jednego z węzłów podczas wykonywania klastra Kubernetes. Istnieje możliwość, że może być konieczne rozwiązywanie problemów z trudnościami w węźle, zaktualizowanie określonego węzła lub zmniejszenie klastra. Chociaż usunięcie dowolnego kapsuły lub kapsuł z węzła nie jest zbyt trudne, istnieją kilka wskazówek i technik, których należy przestrzegać, aby zapewnić, że aplikacja/program nie jest zakłócony. O tym mówiliśmy i rozwinąliśmy w tym artykule. Przed wykonaniem jakichkolwiek instrukcji upewnij się, że dokładnie przeczytałeś i zrozumiesz każdy krok, aby uniknąć popełniania błędów, które mogą spowodować przestoje.