W tym artykule porozmawiamy konkretnie o różnych zasadach Kubernetes. Najpierw omówmy różne zasady używane, gdy Kubernetes musi zostać ponownie uruchomiony. Możesz użyć tych zasad, aby powstrzymać pewne obciążenie przed wdrożeniem w klastrze. Podczas gdy narzucanie rygorystycznych standardów w klastrze jest zwykle wykonywane w celu zapewnienia zgodności, administratorzy klastrów powinni również przestrzegać kilku najlepszych praktyk, które zostały zaproponowane.
Co to jest polityka ponownego uruchomienia kubernetes?
Każdy kapsułka Kubernetes jest zgodna z określonym cyklem życia. Zaczyna się na etapie „oczekujących”, a jeśli jeden lub więcej głównych kontenerów uruchomi się z powodzeniem, przechodzi na etap „bieżącego”. W zależności od tego, czy pojemniki w kapsule odniosły sukces, czy proces przechodzi do fazy „Ustał” lub „nieudany”.
Aby zrestartować zasady na poziomie zastosowanych kontenerów, można użyć trzech opcji:
Zawsze
Za każdym razem, gdy kontener kończy się, Kubernetes produkuje nowy, ponieważ kapsuła musi być aktywna przez cały czas.
ONFAILURE
Jeśli kontener wychodzi z kodem powrotu innego niż 0, ponownie uruchamia się tylko raz. Ponowne uruchomienie nie jest konieczne dla kontenerów, które zwracają 0 (sukces).
Nigdy
Pojemnik nie został ponownie uruchomiony.
Teraz, w poniższej sekcji, omówimy, w jaki sposób możesz ponownie uruchomić kapsułkę.
Jak ponownie uruchomić kapsułkę w Kubernetes?
Aby zrestartować kapsułkę Kubernetes, wydać polecenia za pomocą narzędzia Kubectl. Połączy się z serwerem Kubeapi. Pozwól nam zbadać dostępne opcje:
Ponowne uruchomienie pojemnika w podkładce
Kapsułka może pomieścić kilka pojemników. Z drugiej strony, zasadniczo łączysz się z głównym kontenerem w kapsule, gdy się z nim połączysz. Możesz połączyć się z każdym kontenerem, który zdefiniowałeś w przypadku, jeśli zdefiniowałeś więcej niż jeden.
Poniżej możesz zobaczyć przykład specyfikacji kapsułki z wieloma kontaktami:
To opisuje wspólny wolumen i dwa pojemniki. Plik HTML będzie obsługiwany przez kontener Nginx, a co sekundę kontener Ubuntu doda znaczek daty do pliku HTML.
Ponieważ nie określiłeś, do którego kontenera możesz się połączyć, automatycznie wybierze pierwszy (nginx), gdy próbujesz podłączyć się do tego kapsuła. Zrzut ekranu jest dołączony poniżej:
Możesz teraz spróbować zakończyć proces PID 1 wewnątrz aktualnie aktywnego pojemnika. Uruchom następujące polecenia jako root, aby to osiągnąć:
Możesz także skorzystać z narzędzia Kubectl opisanego poniżej:
Zgodnie ze specyfikacją POD, K8s spróbuje teraz ponownie uruchomić zniszczony pojemnik. W tym celu polecenie „Opisz” jest używane w następujący sposób:
Oto wynik powyższego polecenia:
Obecny państwo „idzie”, podczas gdy poprzedni stan został „zakończony.„Oznacza to, że pojemnik został ponownie uruchomiony, zgodnie z tym. Jednak nie wszystkie kontenery mogą uzyskać dostęp do danych dotyczących pierwotnych. Dlatego ta metoda może nie być zbyt przydatna.
Ponowne uruchomienie kapsułki przez skalowanie
Skalowanie liczby repliki kapsuła do 0, a następnie skalowanie jej do 1 jest najprostszym sposobem na jej ponowne uruchomienie. Zamiast tego musisz skonstruować wdrożenie, ponieważ polecenia skali nie może być używane na PODS. Oto łatwy sposób na osiągnięcie tego:
Skalować do 0, a następnie do 1 po tym. W ten sposób POD zostanie zakończony, a następnie przeniesiony do klastra:
Repliki są ustawione na 1, jak widać na tym obrazku.
Aby wyświetlić szczegóły wdrażania, użyliśmy teraz „Kubectl otrzymuje wdrożenia.„Poniżej znajduje się lista zarówno polecenia, jak i wyniku:
Ponowne uruchomienie kapsuły, usuwając go i ponowne wdrożenie
Korzystając z polecenia „Kubectl Delete”, możesz usunąć kapsułkę, a następnie ponownie go wdrożyć. Jednak takie podejście jest raczej zakłócające, dlatego nie jest zalecane.
Ponowne uruchomienie kapsuły za pomocą wdrożenia
Aby zrestartować kapsułkę za pomocą opisanego powyżej, musisz albo zniszczyć istniejący kapsuł. Z wersją 1 Kubernetes.15, możesz ponownie uruchomić rozmieszczenie w ciągły sposób. Jest to sugerowana procedura ponownego uruchomienia kapsułki. Po prostu wprowadź następujące polecenie, aby rozpocząć:
Teraz, jeśli będziesz mieć oko na status wdrażania na innym terminalu, zauważysz przepływ zdarzeń w następujący sposób:
Jeśli jest zdrowy, zmniejszy poprzednią replikę rozmieszczenia i zwróci nową replikę kapsuły. Wynik jest taki sam, z wyjątkiem tego podejścia, podstawową orkiestracją była Kubernetes.
Jak można ponownie uruchomić kapsuły Kubernetes na różne sposoby?
Zacznijmy najpierw od kontenera Docker. Za pomocą następującego polecenia kontenery Docker można ponownie uruchomić:
> Docker restart Contener_ID
Ale w Kubernetes nie ma porównywalnego polecenia do ponownego uruchomienia kapsuł, zwłaszcza jeśli nie ma określonego pliku YAML. Alternatywnie możesz ponownie uruchomić kapsuły Kubernetes za pomocą poleceń Kubectl. Wymieniono następujące polecenia:
Polecenie kubectl set env
Jedną metodą jest użycie polecenia Kubectl Scale. To zmodyfikuje liczbę replików kapsuły, które należy ponownie uruchomić. Poniżej znajduje się przykład, jak ustawić repliki w kapsule na dwa:
> Kubectl Scale wdrożenie pierwsze wdrażanie-Replicas = 2
Polecenie ponownie uruchom ponownie
Tutaj zademonstrujemy, jak użyć polecenia Restart Restart, aby ponownie uruchomić kapsuły Kubernetes:
> Wdrożenie kubectl restart wdrażanie pierwszego wdrażania -n -n Demo-namespace
Kontroler ma indywidualnie eksterminować każdy kapsułek przez polecenie. Następnie skaluje nowe kapsuły za pomocą replicaset. Dopóki każdy nowy kapsuł.
Polecenie delete POD
Ta sekcja przejdzie, jak użyć polecenia Usuń, aby ponownie uruchomić kapsuły Kubernetes. Możesz zauważyć, że użyliśmy następnego polecenia, aby pozbyć się obiektu API POD na tym obrazku:
.> Kubectl delete POD -POD -N DEMO_NAMESPACE
Oczekiwany jest sprzeczny z usunięciem obiektu POD, ponieważ API Kubernetes jest deklaratywne. Aby zachować spójność z przewidywaną, kapsuł.
Jeden kapsułek można ponownie uruchomić za pomocą poprzedniego polecenia. Zapoznaj się z załączonym poleceniem, aby ponownie uruchomić kilka kapsuł:
> Kubectl Usuń replicaset Pods-Multiple-N demo_namespace
Wspomniane polecenie ponownie uruchamia każdą kapsuł.
Wniosek
Ten post dostarczył informacji o różnych zasadach Kubernetes restart. Zilustrowaliśmy każdy etap za pomocą przykładów próbek. Wypróbuj także te polecenia i zobacz, jakie wyniki generują.