Kubectl Drenain

Kubectl Drenain
Pojemniki są efemeryczne, ponieważ wszyscy, którzy z nimi pracowali. Nie tylko pojemniki i kapsuły, ale także węzły można zastąpić Kubernetes. Węzły Kubernetes to maszyny wirtualne, serwery i inne silne obliczeniowo jednostki, w których wykonywane strąki i kontenery. Technologia, która pozwala użytkownikom bezproblemowo przesuwać wszystkie pojemniki z jednego węzła na drugi, jest znana jako wyczerpanie węzła. Istnieje wiele aplikacji, takich jak utrzymanie serwera, automatyczne skalowanie klastra K8s, w których węzły są dynamicznie dodawane i wycofane. Instancje uprzedzone lub punktowe są instancjami, które można zatrzymać w dowolnym momencie.

Kubernetes może automatycznie wykrywać awarie węzłów i przesuwać kapsuły na inne węzły. Jedynym problemem jest czas potrzebny na spadek węzła i rozmieszczenie kapsuły. Zobaczmy, jak możesz spuścić węzeł w Kubernetes. Ale najpierw upewnij się, że masz w systemie zainstalowany Kubectl. Aby wykonać polecenia, musisz również zainstalować klaster minikupe, a następnie uruchomić okno terminala. Możesz użyć minikube, postępując zgodnie z poniższym poleceniem.

Oprócz tego upewnij się, że Twój serwer Kubernetes musi być wersją 1.5 lub nowsze. Wprowadź „wersję kubectl”, jeśli chcesz sprawdzić wersję. Musisz spełnić określone wymagania, aby skutecznie wykonać to zadanie. Nie potrzebujesz, aby aplikacje były dostępne podczas drenażu węzła lub nie potrzebujesz ich, aby były w ogóle bardzo dostępne. Dowiedziałeś się o koncepcji PoddisRuptionBudget i skonfigurował poddisRuptionBudgets dla aplikacji, które ich wymagają.

W razie potrzeby skonfiguruj budżet na zakłócenia

Aby upewnić się, że obciążenia są dostępne podczas konserwacji, utwórz poddisRuptionBudget. Najpierw skonfiguruj PoddisRuptionBudgets, a następnie kontynuuj tę poradę, jeśli dostępność ma kluczowe znaczenie dla wszelkich aplikacji, które mogą działać w węźle, które wyczerpujesz.

Zastosowanie drenażu kubectl do usuwania/usuwania węzła

Możesz użyć drenażu Kubectl, aby eksmitować wszystkie swoje kapsuły przed wykonaniem konserwacji w bezpiecznych eksmisjach węzła, kończą pojemniki kapsułowe w sposób uporządkowany.

Kubectl Drain ostatecznie ignoruje niektóre kapsuły w węźle, które nie można domyślnie zniszczyć. Dlatego bezpieczne jest zamknięcie węzła poprzez wyłączenie jego fizycznej maszyny lub, jeśli działa na platformie chmurowej, odinstalowanie maszyny wirtualnej. Aby rozpocząć, zidentyfikuj węzeł, który chcesz spuścić po nazwie. Polecenie poniżej wyświetli listę wszystkich węzłów wymienionych w klastrze.

Następnie poinformuj Kubernetes, że węzeł powinien zostać wyczerpany:

Po powrocie węzła (i bez powodowania błędu) możesz go wyłączyć (lub równoważnie, jeśli na platformie chmurowej usuń maszynę wirtualną, która popiera węzeł). Jeśli zostawisz węzeł w klastrze do konserwacji, użyj następującego polecenia, aby poinformować Kubernetes, że może rozpocząć zmianę harmonogramu nowych strąków w węźle.

Wyczerpanie licznych węzłów jednocześnie

Tylko jeden węzeł powinien odbierać instrukcję drenażu Kubectl na raz. Możesz jednak wykonać wiele instrukcji drenażu Kubectl jednocześnie, w różnych zaciskach lub tle dla różnych węzłów. Nawet jeśli jednocześnie działają liczne instrukcje drenażu, należy zaobserwować poddisurptionbudget.

Jeśli masz statefuls z 3 replikami i poddisuruptaptget z 2, Kubectl Drenain usunie kapsułę tylko wtedy, gdy wszystkie te kapsuły są gotowe. Jeśli uruchomisz wiele poleceń drenażu w tym samym czasie, Kubernetes uhonoruje poddisRuptionBudget i gwarantuje, że wykonano tylko jeden drenaż.

Eksmisja w Kubernetes

Możesz użyć interfejsu API eksmisji do programowego inicjowania eksmisji, jeśli nie chcesz używać drenażu Kubectl (na przykład w celu uniknięcia wykonywania polecenia zewnętrznego lub lepszej kontroli w całym procesie eksmisji POD).

Musisz najpierw zapoznać się z klientami języka Kubernetes, aby użyć interfejsu API. Podpresource eksmisji kapsułowej można traktować jako akcję usuwania na POD, która jest kontrolowana przez politykę. Aby wypróbować eksmisję, opublikujesz próbę operacji (lub próbować dokładniej skonstruować eksmisji).

Utknięte eksmisje

O ile nie działasz, wniosek może zostać złamany, a API eksmisji zawsze zwróci 429 lub 500. Podobne efekty można również zobaczyć, czy ostatni kapsuła, która została eksmitowana, ma okres karencji długoterminowej.

W tej sytuacji są dwie opcje: przerywanie lub zatrzymanie automatycznej operacji. Uruchom ponownie automatyzację po ustaleniu przyczyny zablokowanej aplikacji. Zamiast korzystać z interfejsu API eksmisji, usuń kapsułkę z płaszczyzny sterowania klastra, gdy minie rozsądny czas.

Wniosek

W tym artykule rozmawialiśmy o zastosowaniu drenażu Kubectl. Wyjaśniono różne polecenia, aby pomóc ci zrozumieć metodę spuszczenia w Kubernetes.