Jak działa usługa Azure Load Balancer
Usługa Azure Load Balancer działa w warstwie transportowej modelu OSI. Ta funkcja warstwy 4 umożliwia zarządzanie ruchem na podstawie określonych właściwości ruchu. Właściwości, w tym adres źródłowy i docelowy, typ protokołu TCP lub UDP oraz numer portu.
Usługa Load Balancer ma kilka elementów, które współpracują ze sobą, aby zapewnić wysoką dostępność i wydajność aplikacji:
- Adres IP frontonu
- Reguły modułu równoważenia obciążenia
- Pula zaplecza
- Sondy kondycji
- Reguły NAT dla ruchu przychodzącego
- Porty wysokiej dostępności
- Reguły ruchu wychodzącego
Adres IP frontonu
Adres IP frontonu to adres używany przez klientów do nawiązywania połączenia z aplikacją internetową. Adres IP frontonu może być zarówno publiczny, jak i prywatny. Moduły równoważenia obciążenia platformy Azure mogą mieć wiele adresów IP wejściowych. Wybór publicznego lub prywatnego adresu IP określa typ modułu równoważenia obciążenia do utworzenia:
Publiczny adres IP: publiczny moduł równoważenia obciążenia: publiczny moduł równoważenia obciążenia mapuje publiczny adres IP i port ruchu przychodzącego na prywatny adres IP i port maszyny wirtualnej. Można dystrybuować określone typy ruchu między wieloma maszynami wirtualnymi lub usługami, stosując reguły równoważenia obciążenia. Można na przykład rozłożyć obciążenie ruchu żądań internetowych na wiele serwerów internetowych. Moduł równoważenia obciążenia mapuje ruch odpowiedzi z prywatnego adresu IP i portu maszyny wirtualnej na publiczny adres IP i port modułu równoważenia obciążenia. Następnie przesyła odpowiedź z powrotem do klienta żądającego.
Prywatny adres IP: wewnętrzny moduł równoważenia obciążenia: wewnętrzny moduł równoważenia obciążenia dystrybuuje ruch do zasobów, które znajdują się w sieci wirtualnej. Platforma Azure ogranicza dostęp do adresów IP interfejsowych zrównoważonej pod względem obciążenia sieci wirtualnej. Adresy IP interfejsu frontowego i sieci wirtualne nigdy nie są bezpośrednio widoczne dla punktu końcowego w Internecie. Wewnętrzne aplikacje biznesowe działają na platformie Azure i są dostępne z platformy Azure lub z zasobów lokalnych za pośrednictwem sieci VPN lub połączenia usługi ExpressRoute.
Reguły modułu równoważenia obciążenia
Reguła modułu równoważenia obciążenia definiuje sposób dystrybucji ruchu do puli zaplecza. Reguła mapuje daną kombinację adresu IP i portu front-end na zestaw kombinacji adresu IP i portu back-end.
Ruch jest zarządzany przy użyciu skrótu z pięcioma krotkami wykonanymi z następujących elementów:
- Źródłowy adres IP: adres IP klienta żądającego.
- Port źródłowy: port klienta żądającego.
- Docelowy adres IP: docelowy adres IP żądania.
- Port docelowy: port docelowy żądania.
- Typ protokołu: określony typ protokołu, TCP lub UDP.
- Powiązanie sesji: zapewnia, że ten sam węzeł w puli zawsze obsługuje ruch dla klienta.
Usługa Load Balancer umożliwia równoważenie obciążenia usług na wielu portach, wielu adresach IP lub obu tych portach. Dla każdego adresu IP frontonu można skonfigurować różne reguły równoważenia obciążenia. Wiele konfiguracji front-endu jest obsługiwanych tylko przez maszyny wirtualne IaaS.
Usługa Load Balancer nie może stosować różnych reguł na podstawie zawartości ruchu wewnętrznego, ponieważ działa w warstwie 4 (warstwa transportowa) modelu OSI. Jeśli musisz zarządzać ruchem na podstawie właściwości warstwy 7 (warstwa aplikacji), musisz wdrożyć rozwiązanie, takie jak usługa Azure Application Gateway.
Pula zaplecza
Pula zaplecza serwerowego to grupa maszyn wirtualnych lub instancji w zestawie skalowalnym maszyn wirtualnych, która odpowiada na przychodzące żądanie. Aby ekonomicznie skalować w celu spełnienia dużej ilości ruchu przychodzącego, wytyczne dotyczące przetwarzania zwykle zalecają dodawanie większej liczby wystąpień do zaplecza serwerów.
Load Balancer implementuje automatyczną zmianę konfiguracji w celu redystrybuowania obciążenia w zmienionej liczbie instancji podczas skalowania instancji w górę lub w dół. Na przykład w przypadku dodania dwóch kolejnych wystąpień maszyn wirtualnych do puli zaplecza usługa Load Balancer ponownie skonfiguruje się, aby rozpocząć równoważenie ruchu do tych wystąpień zgodnie z już skonfigurowanymi regułami równoważenia obciążenia.
Sondy kondycji
Sonda zdrowia służy do określania stanu zdrowia wystąpień w puli zaplecza. Ta sonda zdrowotna określa, czy instancja jest zdrowa i może odbierać ruch. Dla sond kondycji można zdefiniować próg złej kondycji. Gdy sonda nie odpowie, moduł równoważenia obciążenia przestaje wysyłać nowe połączenia do wystąpień w złej kondycji. Niepowodzenie sondy nie ma wpływu na istniejące połączenia. Połączenie będzie kontynuowane do:
- Aplikacja kończy przepływ.
- Dochodzi do przekroczenia limitu czasu bezczynności.
- Maszyna wirtualna zostanie zamknięta.
Usługa Load Balancer umożliwia konfigurowanie różnych typów sond kondycji dla punktów końcowych: TCP, HTTP i HTTPS.
- Niestandardowa sonda TCP: ta sonda polega na ustanowieniu pomyślnej sesji TCP na zdefiniowanym porcie sondy. Jeśli określony odbiornik na maszynie wirtualnej istnieje, sonda zakończy się powodzeniem. Jeśli połączenie zostanie odrzucone, sonda zakończy się niepowodzeniem. Można określić port, interwał i próg stanu nienormalnego.
- Sonda niestandardowa HTTP lub HTTPS: moduł równoważenia obciążenia regularnie sonduje punkt końcowy (domyślnie co 15 sekund). Wystąpienie jest w dobrej kondycji, jeśli odpowiada kodem HTTP 200 w czasie trwania limitu czasu (domyślnie 31 sekund). Każdy stan inny niż HTTP 200 powoduje niepowodzenie sondy. Można określić port (port), identyfikator URI żądania stanu kondycji z zaplecza (URI), ilość czasu między próbami sondy (Interwał) oraz liczbę błędów, które muszą wystąpić, aby wystąpienie było uznawane za w złej kondycji (próg złej kondycji).
Trwałość sesji
Domyślnie usługa Load Balancer dystrybuuje ruch sieciowy równomiernie między wieloma wystąpieniami maszyn wirtualnych. Zapewnia lepość tylko w ramach sesji transportu. Trwałość sesji określa sposób obsługi ruchu z klienta. Domyślne zachowanie (Brak) polega na tym, że każda maszyna wirtualna w dobrej kondycji może obsługiwać kolejne żądania od klienta.
Trwałość sesji jest również nazywana koligacją sesji, koligacją źródłowego adresu IP lub koligacją adresu IP klienta. Ten tryb dystrybucji używa hashowania dwuelementowego (źródłowy adres IP i docelowy adres IP) lub trójelementowego (źródłowy adres IP, docelowy adres IP i typ protokołu) do kierowania do instancji zaplecza. Gdy używasz utrzymywania sesji, połączenia od tego samego klienta trafiają do tej samej instancji zaplecza w puli instancji zaplecza. Możesz skonfigurować jedną z następujących opcji trwałości sesji:
- Brak (wartość domyślna): określa, że każda maszyna wirtualna w dobrej kondycji może obsłużyć żądanie.
- Adres IP klienta (2-tuple): Określa, że to samo zaplecze może obsługiwać kolejne żądania z tego samego adresu IP klienta.
- Adres IP klienta i protokół (trójka): określa, że to samo wystąpienie zaplecza może obsługiwać kolejne żądania z tej samej kombinacji adresu IP klienta i protokołu.
To zachowanie można zmienić, konfigurując jedną z opcji opisanych w poniższych sekcjach.
Porty wysokiej dostępności
Reguła modułu równoważenia obciążenia skonfigurowana przy użyciu protocol - all and port - 0
jest nazywana regułą portu wysokiej dostępności (HA) . Ta reguła umożliwia pojedynczej regule równoważenie obciążenia wszystkich przepływów TCP i UDP, które docierają do wszystkich portów wewnętrznego standardowego modułu równoważenia obciążenia.
Decyzja o równoważeniu obciążenia jest podejmowana dla każdego przepływu. Ta akcja jest oparta na następującym połączeniu pięciokrotki:
- Źródłowy adres IP
- Port źródłowy
- Docelowy adres IP
- Port docelowy
- Protokół
Reguły równoważenia obciążenia dla portów wysokiej dostępności pomagają w krytycznych scenariuszach, takich jak zapewnienie wysokiej dostępności i skalowalności wirtualnych urządzeń sieciowych (WUS) w sieciach wirtualnych. Funkcja może pomóc w przypadku konieczności równoważenia obciążenia wielu portów.
Reguły NAT dla ruchu przychodzącego
Reguły równoważenia obciążenia można używać w połączeniu z regułami translatora adresów sieciowych (NAT). Można na przykład użyć NAT z publicznego adresu modułu równoważenia obciążenia do TCP 3389 na określonej maszynie wirtualnej. Ta kombinacja reguł umożliwia dostęp pulpitu zdalnego spoza platformy Azure.
Reguły ruchu wychodzącego
Reguła wychodząca konfiguruje translację adresów sieciowych (SNAT) dla wszystkich maszyn wirtualnych lub wystąpień zidentyfikowanych przez pulę zaplecza. Ta reguła umożliwia instancjom w zapleczu komunikację wychodzącą z internetem lub innymi publicznymi adresami końcowymi.