0Pricing
DevOps Bootcamp · Lekcja

Wyłączanie i ponowne włączanie węzłów w load balancerze

Bezpieczne wycofywanie węzłów i przywracanie ich do ruchu.

Wyłączanie i ponowne włączanie węzłów w load balancerze to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Aktualizowanie ruchu na żywo jest ryzykowne

Jeśli serwer zostanie zaktualizowany, gdy użytkownicy z niego korzystają, żądania zakończą się błędem. Rozwiązaniem jest najpierw wycofanie węzła z load balancera. 🚦

Co oznacza wycofanie węzła z ruchu

Wycofać węzeł z ruchu oznacza przestać wysyłać do niego nowe żądania, jednocześnie pozwalając na dokończenie żądań już przetwarzanych. Dopiero wtedy można bezpiecznie przeprowadzić aktualizację.

Cykl: wycofanie, aktualizacja i ponowne włączenie

Bezpieczny schemat składa się z trzech kroków: wycofać węzeł z ruchu, wdrożyć zmianę, a następnie ponownie włączyć węzeł w load balancerze.

Wyłączanie węzła w HAProxy

Moduł community.general.haproxy ustawia węzeł backendu jako wyłączony, informując HAProxy, aby przestał kierować do niego ruch.

- name: Drain web node
  community.general.haproxy:
    state: disabled
    host: "{{ inventory_hostname }}"
    socket: /var/run/haproxy.sock

Uruchamianie zadania LB z poziomu LB

Gniazdo HAProxy znajduje się na load balancerze, dlatego należy użyć delegate_to dla hosta LB, jednocześnie wskazując wycofywany węzeł web.

  delegate_to: lb01

Oczekiwanie na zakończenie połączeń

Należy dać aktywnym żądaniom czas na zakończenie. W tym celu można użyć wait_for lub krótkiej pauzy, aby nie odcinać użytkowników w trakcie obsługi żądania.

- name: Let traffic drain
  ansible.builtin.wait_for:
    timeout: 30
  delegate_to: localhost

Bezpieczne wdrażanie

Po wycofaniu węzła z puli należy wykonać zadania aktualizacji: zainstalować pakiety, wysłać konfigurację i zrestartować aplikację. Nie wpłynie to na ruch obsługiwany na żywo. 🔧

Ponowne włączanie węzła

Po aktualizacji należy ustawić węzeł z powrotem jako włączony, aby HAProxy wznowił kierowanie ruchu do świeżo wdrożonego serwera.

- name: Re-enable web node
  community.general.haproxy:
    state: enabled
    host: "{{ inventory_hostname }}"
    socket: /var/run/haproxy.sock
  delegate_to: lb01

Sprawdzanie stanu przed ponownym włączeniem

Przed ponownym dodaniem węzła należy potwierdzić, że aplikacja rzeczywiście działa. Sprawdzenie za pomocą wait_for lub uri na punkcie końcowym kontroli stanu zapobiega udostępnieniu uszkodzonego węzła.

- ansible.builtin.uri:
    url: http://localhost:8080/health
    status_code: 200
  retries: 5
  delay: 3

Jeden węzeł naraz

Należy połączyć ten cykl z serial, aby jednocześnie wycofywać tylko jeden lub dwa węzły. Pozostałe nadal obsługują ruch, co zapewnia brak przestojów.

- hosts: web
  serial: 1

Zawsze włączaj ponownie, nawet po błędzie

Wdrożenie należy umieścić w block z always, aby nieudana aktualizacja również przywracała węzeł do puli zamiast pozostawiać go odłączonego.

Szybkie sprawdzenie

Sprawdźmy bezpieczny schemat wdrażania.

Podsumowanie

Aby uniknąć przestojów, należy wycofać węzeł z ruchu, wdrożyć zmianę, sprawdzić stan, a następnie ponownie go włączyć — jeden węzeł naraz, z użyciem serial i bloku always. ✅

Często zadawane pytania

Czy lekcja „Wyłączanie i ponowne włączanie węzłów w load balancerze” jest bezpłatna?

Tak — pełny tekst „Wyłączanie i ponowne włączanie węzłów w load balancerze” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Wyłączanie i ponowne włączanie węzłów w load balancerze”?

Bezpieczne wycofywanie węzłów i przywracanie ich do ruchu. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Wyłączanie i ponowne włączanie węzłów w load balancerze”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Automatyzacja urządzeń sieciowych za pomocą cli_command
  2. delegate_to i run_once do orkiestracji
  3. Koordynowanie warstw Web, App i DB
  4. Wyłączanie i ponowne włączanie węzłów w load balancerze
← Powrót do DevOps Bootcamp