Kubernetes Sondy startupowe

Kubernetes Sondy startupowe

Ten artykuł koncentruje się na sondach uruchamiania. Rola sondy startupowej może sekwencyjnie wykluczać inne sondy. Niezbędne jest dodatkowe użycie sond uruchamiania wraz z sondami ożywowości i gotowości. Obciążenia nie można zmodyfikować przez sondę uruchamiania samodzielnie. W tym artykule przejrzysz, w jaki sposób Kubernetes ocenia stan zdrowia aplikacji za pośrednictwem sond uruchamiania i skonfiguruje kontrole zdrowia za pomocą sond startowych.

Jakie są sondy Kubernetes?

Sondy są również nazywane kontroli zdrowia, które są techniką aplikacji Kubernetes w celu zapewnienia monitorowania stanu wewnętrznego aplikacji za pomocą informacji. Pozwalają klastrze zidentyfikować działające strąki (kontenery), które monitorują zdrowie aplikacji i upewniają się, że tylko zdrowe kapsuły służą ruchowi.

Aplikacje mogą stać się niewiarygodne z różnych powodów, takich jak tymczasowa utrata połączenia, błędy konfiguracji i błędy aplikacji. Deweloperzy monitorują zdrowie aplikacji za pomocą sond. Sondy pomagają programistom poznać status aplikacji, wykorzystanie zasobów i błędów. Łatwo jest skutecznie rozwiązać problemy z aplikacjami, zarządzanie zasobami i organizację zasobów poprzez monitorowanie informacji o aplikacji.

Sondy są używane do wykrycia następujących czynności:

    • Kontenery, które jeszcze nie postępowały i nie mogą służyć ruchowi.
    • Kontenery, które są przeciążone i nie mogą obsługiwać dodatkowego ruchu.
    • Kontenery, które są całkowicie martwe i nie obsługują żadnego ruchu.

Jakie są rodzaje sond Kubernetes?

Istnieją trzy rodzaje sond Kubernetes. Obejmują one:

Sondy ożywcze

Odpowiada ponowne uruchomienie pojemnika, jeśli wykryje zakaz i nie reaguje.

Sondy gotowości

Jest uważany za opiekuna drzwi przychodzącego ruchu. Ta sonda jest odpowiedzialna za stwierdzenie, że ten kapsuł.

Sondy startupowe

Jest odpowiedzialny za aplikację wdrażaną wewnątrz kontenera. Wskazuje, czy aplikacja rozpoczęła się pomyślnie.

Co to jest sonda startupowa?

Kubernetes może ustalić, czy oprogramowanie, które wykonuje się w pojemniku wewnątrz kapsułki, prawidłowo zaczął używać sond uruchamiania.

Jak widać na poniższym rysunku, aplikacja wewnątrz kapsuły

Kluczowe punkty sond startowych

    • W przypadku aplikacji chroń pojemnik na wolno startujący za pomocą sondy startupowej, która trwa dłużej, aby rozpocząć.
    • Wyłącz sondy ożywcze i gotowości za pośrednictwem sondy uruchamiania, gdy czas rozpoczęcia aplikacji przekracza.
    • Sonda uruchamiania zapewnia mechanizm ładowania dużych danych, konfiguracji i migrowania plików.

Wymagania wstępne tworzenia sondy startupowej

Przed pracą z sondą uruchamiania, warunki wstępne to klaster Kubernetes z dwoma węzłami, które nie działają jako hosty i oprogramowanie linii poleceń Kubectl, które należy skonfigurować do komunikacji między klastrami. Jeśli nie utworzyłeś klastra, możesz użyć minikube, aby utworzyć klaster. Istnieją inne opcje placu zabaw Kubernetes, które są dostępne online, których można użyć do utworzenia klastra.

Istnieją cztery podstawowe techniki Kubernetes, które są obsługiwane przez sondy startupowe:

Exec: Wykonuje polecenie w kontenerze. Kod zerowy wskazuje sukces, a inne kody wskazują na awarię.

HTTP: Sprawdź zdrowie aplikacji za pomocą polecenia żądania GET. Sonda HTTP jest uważana za zdrową, jeśli jej odpowiedź znajduje się w zakresie [200-399]. Jeśli Twoja aplikacja nie obsługuje serwera HTTP, utwórz serwer HTTP w aplikacji i odpowiedz na sondę ożywiającą.

TCP: Kubernetes otwiera połączenie między określonym portem TCP a pojemnikiem. Jeśli połączenie zakończy się powodzeniem, akceptuje ruch. W przeciwnym razie nie tworzy połączenia. Port TCP działa w imieniu sond HTTP, gdy sonda HTTP nie jest w stanie pracować.

GRPC: Określa, czy sonda zakończy się powodzeniem, wysyłając żądanie kontroli zdrowia GRPC do portu wewnątrz kontenera i korzystając z odpowiedzi.

Kryterium sukcesu dla sondy i sposób, w jaki jest ona często weryfikowana, są kontrolowane przez kilka podstawowych zmiennych:

inideventDelayseConds: Określa czas, który musi minąć między czasem uruchamiania kontenera, a po raz pierwszy używaną sondę (domyślnie: 0, minimum: 0).

Okresy okresowe: Określa, jak często sonda jest sprawdzana po początkowym opóźnieniu (domyślnie: 10, minimum: 1).

TimeoutSeconds: Wskazuje, jak długo czekać, aż sonda zakończy się i zaznaczyć jako niepowodzenie po przekroczeniu czasu (domyślnie: 1, minimum: 1).

AreaureThReshold: Kubernetes wymaga minimalnej sukcesu, aby sonda była uznana za niezdrową, jeśli się powiodła. Pojemnik jest ponownie uruchomiony tylko wtedy, gdy powtórzenia są niezdrowe (domyślnie: 3, minimum: 1).

Jak utworzyć sondę uruchamiania

Sondy startupowe są wykonywane przez dodanie dyscypliny startupprobe w specyfikacji.pojemniki części odrębnego strąka. Podejście EXEC jest używane w prostym przykładzie sondy uruchamiania, który pokazano następująco, gdzie polecenie działa wewnątrz kontenera:


Ścieżka:/Healthz jest punktem końcowym zdrowotnym Applicexample-Startup-Probnia. Awaryjne próg: 12 to kubernetes w przypadku awarii sondy. Okresy okresu: 12 to sposób, w jaki często przeprowadzana jest inspekcja.

Za pomocą Kubectl dodaj kapsułkę do klastra za pomocą następującego polecenia:

> Kubectl Zastosuj -f Startup-Probe-Example.yml


Pojemnik zaczyna się i działa normalnie. Możesz to zweryfikować według szczegółów wyświetlanych w Kubectl:

Jak chronić powolne pojemniki początkowe za pomocą sond startowych?

Dzięki następującej formuły można znaleźć wystarczająco długo, aby pokryć najgorszy czas uruchamiania:

> awaryjne



Maksymalny czas rozpoczęcia aplikacji wynosi 3 minuty (20 * 10 = 200). Gdy sonda startupowa po raz pierwszy się powiedzie, sonda ożywowości przechodzi, aby zaoferować szybką odpowiedź na impas kontenera. Pojemnik jest zakończony po 200 sekundach i podlega restartpolicy, jeśli sonda startupowa nigdy się nie powiódła.

Wniosek

Sondy ożywcze, gotowości i startupu dla kontenerów, które są wdrażane w kontenerach Kubernetes, muszą być odpowiednio skonfigurowane, jeśli chcesz utrzymać zdrowy klaster Kubernetes. Ten post skoncentrował się na sondzie startupowej, co jest kluczowe, ponieważ pozwala pojemnikom powiadomić Kubernetes po uruchomieniu i są przygotowane do oceny pod kątem posiadania i gotowości. Dobrze jest dodać sondę uruchamiania, gdy używasz sondy o żywności i gotowości. W przeciwnym razie pojemnik może zostać ponownie uruchomiony przed zakończeniem inicjalizacji. W tym artykule implementuje podstawową konfigurację konfiguracji sondy startupowej i opisuje parametry, które mogą być używane przez sondy.