Jak wdrożyć skuteczne kontrole stanu w HAProxy

Jak Wdrozyc Skuteczne Kontrole Stanu W Haproxy



Konfigurowanie HAProxy tak, aby pełniło funkcję modułu równoważenia obciążenia, będzie niekompletne, jeśli nie uwzględnisz skutecznych kontroli stanu serwera. Wdrożenie kontroli stanu pomaga poprawić niezawodność i dostępność aplikacji. HAProxy wspiera wdrażanie kontroli stanu, które sprawdzają serwery zaplecza, aby upewnić się, że ich stan nadaje się do użycia.

Do rotacji dodawane są tylko serwery, które przejdą kontrolę stanu. Dzięki temu serwer nie zostanie wybrany do użycia, jeśli nie przejdzie kontroli stanu, co minimalizuje ryzyko przestojów. W tym poście zagłębimy się w zrozumienie, jak działają kontrole stanu w HAProxy i co jest potrzebne do wdrożenia skutecznej kontroli stanu. Zaczynajmy!

Jakie są kontrole stanu w HAProxy

Podczas konfigurowania HAProxy jednym z zadań jest określenie, które serwery zaplecza mają być używane dla Twojej aplikacji. W ten sposób ruch zostanie rozłożony na serwery, aby uniknąć przeciążenia żadnego serwera. Jednak kontrole stanu pomagają upewnić się, że serwer jest wybierany do obsługi ruchu tylko wtedy, gdy wszystko jest w porządku.







Kontrole kondycji są przeprowadzane na każdym serwerze i tylko te, które przeszły pomyślnie, są dodawane do rotacji w celu wykorzystania w równoważeniu obciążenia. Kontrole kondycji są przeprowadzane poprzez wysyłanie żądań, takich jak TCP lub HTTP, do wstępnie zdefiniowanego punktu końcowego na serwerze zaplecza. Wyniki kondycji odsyłane przez serwer zaplecza określają jego stan. Na przykład status serwera może pokazywać UP lub DOWN lub wysłać status OK 200, który potwierdza, że ​​serwer jest zdrowy.



Konfigurując kontrole stanu, upewnij się, że masz wstępnie zdefiniowany punkt końcowy, który będzie używany do kontroli stanu. Istnieją różne opcje, których można użyć do skonfigurowania punktu końcowego. Na przykład możesz zwrócić kod statusu lub wiadomość w zależności od statusu serwera. Wszystkie kontrole stanu są zdefiniowane w sekcji zaplecza pliku konfiguracyjnego HAProxy. Otwórz plik konfiguracyjny i utwórz sekcję frontendu.



$ sudo nano /etc/haproxy/haproxy.cfg

Oto podstawowy przykład sekcji frontendu, która wiąże port 80, ustawia stronę statystyk i określa domyślny backend.





Następnym krokiem jest utworzenie sekcji backendu. Poniżej znajdują się różne przykłady wdrożenia skutecznej kontroli stanu w HAProxy.



Przykład 1: Wdrażanie skutecznych aktywnych kontroli stanu

Prostym sposobem wdrożenia kontroli stanu w HAProxy jest ustawienie aktywnych kontroli stanu. Dzięki tej opcji HAProxy spróbuje połączyć się z serwerem. Jeśli nie zostanie wysłana żadna odpowiedź, serwer zostanie uznany za niesprawny i usunięty z rotacji. Domyślnym sposobem wdrożenia aktywnych kontroli stanu jest dodanie słowa kluczowego „check” na każdej linii serwera, aby HAProxy mógł je wszystkie sprawdzić.

Chociaż ten pierwszy przykład działa, nie jest to najlepszy sposób na wdrożenie kontroli stanu. Poza tym używa ustawień domyślnych. Na przykład odstęp między kontrolami, oznaczony jako inter, jest ustawiony na dwie sekundy. Spadek, czyli dozwolona liczba nieudanych kontroli, wynosi trzy. Aby dostosować te ustawienia, określ preferowany odstęp czasowy i liczbę kontroli, jak pokazano w poniższym przykładzie:

Przykład 2: Implementacja kontroli stanu HTTP

W przypadku kontroli stanu HTTP HAProxy wyśle ​​żądanie HTTP do wszystkich serwerów ze słowem kluczowym „check”. Na podstawie odpowiedzi określa status serwera. Przykłady pomyślnych odpowiedzi serwera mieszczą się w zakresie 2xx lub 3xx. Odpowiedź taka jak 200 OK oznacza, że ​​serwer jest w dobrym stanie.

Na potrzeby tego przykładu dodaj linię „opcja httpchk” do swojego backendu.

Przykład 3: Praca z żądaniem GET

HAProxy wysyła żądanie GET do ścieżki „/” podczas tworzenia żądania HTTP. Jeśli jednak punkt końcowy jest skonfigurowany w innej ścieżce, możesz określić ścieżkę adresu URL, na przykład „/health”, a HAProxy wyśle ​​do niego żądanie GET.

W zależności od punktu końcowego serwer wykorzysta odpowiedź do określenia statusu serwera. Oto jak to wdrożyć:

Przykład 4: Określanie ścieżki żądania GET i statusu odpowiedzi

W przypadku punktu końcowego można określić, jakiej pomyślnej odpowiedzi można oczekiwać od żądania GET punktu końcowego w celu określenia statusu serwera. W tym przykładzie nasza ścieżka żądania GET to „/health” i oczekujemy, że status odpowiedzi 200 potwierdzi, że serwer jest w dobrej kondycji, aby obsłużyć równoważenie obciążenia i inne zadania.

Po zmodyfikowaniu pliku konfiguracyjnego HAProxy uruchom ponownie HAProxy, aby zmiany zaczęły obowiązywać.

Otóż ​​to! Wdrożyłeś skuteczne kontrole stanu swojego HAProxy. Możesz uzyskać dostęp do strony statystyk lub sprawdzić plik dziennika za pomocą następującego polecenia, aby potwierdzić, że kontrole stanu działają zgodnie z oczekiwaniami:

$ tail -f /var/log/haproxy.log

Wniosek

Możesz wdrożyć skuteczną kontrolę stanu w HAProxy na różne sposoby. Kontrole stanu są zaimplementowane w sekcji zaplecza pliku konfiguracyjnego HAProxy, a w tym poście podano różne przykłady, jak to zrobić. Sprawdź swoją idealną metodę i wygodnie przeprowadź skuteczną kontrolę stanu w HAProxy.