Sondy stavu Azure Load Balanceru

Sonda stavu Azure Load Balanceru je funkce, která detekuje stav instancí vaší aplikace. Odešle žádost instancím, aby zkontrolovala, jestli jsou k dispozici a reagují na požadavky. Sondu stavu je možné nakonfigurovat tak, aby používala různé protokoly, jako je TCP, HTTP nebo HTTPS. Je to důležitá funkce, protože pomáhá zjišťovat selhání aplikací, spravovat zatížení a plánovat výpadky.

Pravidla Azure Load Balanceru vyžadují sondu stavu ke zjištění stavu koncového bodu. Konfigurace sondy stavu a odpovědí sondy určuje, které instance back-endového fondu přijímají nová připojení. K detekci selhání aplikace použijte sondy stavu. Vygenerujte vlastní odpověď na sondu stavu. Ke správě zatížení nebo plánovaného výpadku použijte sondu stavu pro řízení toku. Pokud sonda stavu selže, nástroj pro vyrovnávání zatížení přestane odesílat nová připojení do příslušné instance, která není v pořádku. Odchozí připojení není ovlivněné, pouze příchozí.

Protokoly sondy

Sondy stavu podporují více protokolů. Dostupnost konkrétního protokolu sondy stavu se liší podle skladové položky Load Balanceru. Chování služby se navíc liší podle skladové položky Load Balanceru, jak je znázorněno v této tabulce:

Standardní SKU Základní SKU
Protokol sondy TCP, HTTP, HTTPS TCP, HTTP
Chování sondy Všechny sondy jsou dole, všechny toky TCP budou pokračovat. Všechny sondy jsou dole, platnost všech toků TCP vyprší.

Vlastnosti sondy

Sondy stavu mají následující vlastnosti:

Název vlastnosti sondy stavu Detaily
Název Název sondy stavu Toto je název, který můžete definovat pro sondu stavu.
Protokol Protokol sondy stavu. Jedná se o typ protokolu, který chcete použít sondu stavu. Možnosti jsou: TCP, HTTP, HTTPS
Port Port sondy stavu Cílový port, který má sonda stavu použít při připojení k virtuálnímu počítači, aby kontrolovala jeho stav
Interval (sekundy) Interval sondy stavu Doba (v sekundách) mezi různými sondami na dvou po sobě jdoucích pokusech o kontrolu stavu na virtuálním počítači
Používá Seznam pravidel nástroje pro vyrovnávání zatížení pomocí této konkrétní sondy stavu. Měli byste mít alespoň jedno pravidlo, které používá sondu stavu, aby bylo efektivní.

Konfigurace sondy

Konfigurace sondy stavu se skládá z následujících prvků:

Konfigurace sondy stavu Detaily
Protokol Protokol sondy stavu. Jedná se o typ protokolu, který chcete použít sondu stavu. Dostupné možnosti: TCP, HTTP, HTTPS
Port Port sondy stavu Cílový port, který má sonda stavu použít při připojení k virtuálnímu počítači, aby zkontrolovala stav virtuálního počítače. Musíte zajistit, aby virtuální počítač naslouchal i na tomto portu (to znamená, že je otevřený).
Interval Interval sondy stavu Doba (v sekundách) mezi po sobě jdoucími pokusy o kontrolu stavu na virtuální počítač

Protokol sondy

Protokol používaný sondou stavu lze nakonfigurovat na jednu z následujících možností: TCP, HTTP, HTTPS.

Scénář Test protokolu TCP Test HTTP/HTTPS
Přehled Testování protokolu TCP zahájí spojení provedením třícestného otevřeného handshaku TCP s definovaným portem. Sondy TCP ukončují připojení pomocí čtyřcestné zavření metody handshake protokolu TCP. HTTP a HTTPS vydávají http GET se zadanou cestou. Obě tyto sondy podporují relativní cesty pro HTTP GET. Testy HTTPS jsou stejné jako testy HTTP s přidáním protokolu TLS (Transport Layer Security). Testy HTTP/HTTPS můžou být užitečné k implementaci vlastní logiky pro odebrání instancí z nástroje pro vyrovnávání zatížení, pokud je port sondy také naslouchacím procesem služby.
Chování selhání sondy Sonda TCP selže, když: 1. Naslouchací proces TCP v instanci během časového limitu vůbec nereaguje. Sonda je označena mimo provoz na základě počtu požadavků sondy časového limitu, které byly nakonfigurované tak, aby před označením sondy neodpovídaly. 2. Sonda obdrží resetování TCP z instance. Sonda HTTP/HTTPS selže, když: 1. Koncový bod sondy vrátí jiný kód odpovědi HTTP než 200 (například 403, 404 nebo 500). 2. Koncový bod sondy nereaguje vůbec během minimálního intervalu sondy a 30sekundového časového limitu. Než se sonda označí jako neběží, může se stát, že není spuštěno více požadavků sondy, a dokud nedosáhnete součtu všech intervalů časového limitu. 3. Koncový bod sondy připojení zavře prostřednictvím resetování protokolu TCP.
Chování sondy Sondy stavu PROTOKOLU TCP se považují za v pořádku a označí koncový bod back-endu jako v pořádku, když: 1. Sonda stavu je po spuštění virtuálního počítače úspěšná. 2. Každý back-endový koncový bod, který dosáhl stavu v pořádku, má nárok na příjem nových toků. Sonda stavu se označí, když instance v rámci časového limitu odpoví stavem HTTP 200. Sondy stavu HTTP/HTTPS se považují za v pořádku a označí koncový bod back-endu jako v pořádku, když: 1. Sonda stavu je po spuštění virtuálního počítače úspěšná. 2. Každý back-endový koncový bod, který dosáhl stavu v pořádku, má nárok na příjem nových toků.

Poznámka:

Sonda HTTPS vyžaduje použití certifikátů založených na minimální hodnotě hash podpisu SHA256 v celém řetězci.

Chování sondy

Scénář Připojení TCP Datagramy UDP
Sondy jedné instance jsou v výpadku Nová připojení TCP jsou úspěšná pro zbývající back-endový koncový bod, který je v pořádku. Navázání připojení TCP k tomuto back-endovému koncovému bodu pokračuje. Existující toky UDP se přesunou do jiné instance, která je v pořádku v back-endovém fondu.
Všechny instance sondy dolů Do back-endového fondu se neposílají žádné nové toky. Load Balancer úrovně Standard umožňuje, aby vytvořené toky TCP pokračovaly v tom, že back-endový fond má více než jednu back-endovou instanci. Load Balancer úrovně Basic ukončí všechny existující toky TCP do back-endového fondu. Všechny existující toky UDP se ukončí.

Interval sondy a časový limit

Hodnota intervalu určuje, jak často sonda stavu kontroluje odpověď z instancí back-endového fondu. Pokud sonda stavu selže, instance back-endového fondu se okamžitě označí jako poškozené. Pokud je sonda stavu úspěšná při dalším v pořádku sondy, Azure Load Balancer označí instance back-endového fondu jako v pořádku. Sonda stavu se ve výchozím nastavení pokusí zkontrolovat nakonfigurovaný port sondy stavu každých 5 sekund na webu Azure Portal, ale může být explicitně nastavená na jinou hodnotu.

Aby se zajistilo včasné přijetí odpovědi, mají sondy stavu HTTP/S integrované časové limity. Tady jsou časové limity pro sondy TCP a HTTP/S:

  • Doba trvání časového limitu sondy PROTOKOLU TCP: Není k dispozici (sondy selžou, jakmile uplynula nakonfigurovaná doba trvání intervalu sondy a odeslala se další sonda).
  • Doba časového limitu sondy HTTP/S: 30 sekund

Pokud je nakonfigurovaný interval delší než výše uvedené období časového limitu, sonda stavu vyprší časový limit a selže, pokud během časového limitu není přijata žádná odpověď. Pokud je například sonda stavu HTTP nakonfigurovaná s intervalem sondy 120 sekund (každých 2 minuty) a během prvních 30 sekund se neobdrží žádná odpověď sondy, sonda dosáhne časového limitu a selže. Pokud je nakonfigurovaný interval kratší než doba nad časovým limitem, sonda stavu selže, pokud se před dokončením nakonfigurovaného intervalu nedokončí žádná odpověď a další sonda se odešle okamžitě.

Pokyny pro návrh

  • Při návrhu modelu stavu pro vaši aplikaci sondujte port na back-endovém koncovém bodu, který odráží stav instance a aplikační služby. Port aplikace a port sondy nemusí být stejné. V některých scénářích může být žádoucí, aby port sondy byl jiný než port, který vaše aplikace používá, ale obecně se doporučuje, aby se jednalo o stejný port.

  • Může být užitečné, aby vaše aplikace vygenerovala odpověď sondy stavu a signalizovala nástroj pro vyrovnávání zatížení, jestli má vaše instance přijímat nová připojení. Můžete manipulovat s odpovědí sondy na omezení doručování nových připojení k instanci tím, že sonda stavu selže. Můžete se připravit na údržbu aplikace a zahájit vyprazdňování připojení k aplikaci. Signál pro ukončení sondy vždy umožňuje, aby toky TCP pokračovaly až do vypršení časového limitu nečinnosti nebo uzavření připojení v Load Balanceru úrovně Standard.

  • Pro aplikaci s vyrovnáváním zatížení UDP vygenerujte z back-endového koncového bodu vlastní signál sondy stavu. Pro sondu stavu, která odpovídá odpovídajícímu naslouchacímu procesu, použijte protokol TCP, HTTP nebo HTTPS.

  • Pravidlo vyrovnávání zatížení portů s vysokou dostupností pomocí Load Balanceru úrovně Standard Všechny porty mají vyrovnávání zatížení a jedna odpověď sondy stavu musí odrážet stav celé instance.

  • Nepřekládejte ani nezprostředkujte sondu stavu prostřednictvím instance, která přijímá sondu stavu do jiné instance ve vaší virtuální síti. Tato konfigurace může vést k selháním ve vašem scénáři. Příklad: Sada zařízení třetích stran se nasadí do back-endového fondu nástroje pro vyrovnávání zatížení, aby se zajistilo škálování a redundance pro zařízení. Sonda stavu je nakonfigurovaná tak, aby testovala port, který proxy zařízení třetí strany nebo překládá na jiné virtuální počítače za zařízením. Pokud testujete stejný port, který se používá k překladu nebo proxy požadavků na ostatní virtuální počítače za zařízením, všechny odpovědi sondy z jednoho virtuálního počítače zařízení označí dolů. Tato konfigurace může vést k kaskádové chybě aplikace. Triggerem může být přerušovaná chyba sondy, která způsobí, že nástroj pro vyrovnávání zatížení označí instanci zařízení. Tato akce může aplikaci zakázat. Sondujte stav samotného zařízení. Výběr sondy pro určení signálu stavu je důležitým aspektem pro scénáře síťových virtuálních zařízení (NVA). V takových scénářích se obraťte na dodavatele vaší aplikace a požádejte ho o odpovídající signál o stavu.

  • Pokud máte ve virtuálním počítači nakonfigurovaných více rozhraní, ujistěte se, že reagujete na sondu na rozhraní, ve které jste ho obdrželi. Možná budete muset zdrojovou síťovou adresu přeložit na virtuálním počítači na základě rozhraní.

  • Všimněte si, že při použití Azure PowerShellu, Azure CLI, šablon nebo rozhraní API není definice sondy povinná ani se nekontroluje. Testy ověření testů se provádějí jenom při použití webu Azure Portal.

  • Pokud sonda stavu kolísá, nástroj pro vyrovnávání zatížení počká déle, než back-endový koncový bod vrátí zpět do stavu v pořádku. Tato dodatečná doba čekání chrání uživatele a infrastrukturu a je úmyslnou zásadou.

  • Ujistěte se, že jsou spuštěné instance virtuálních počítačů. Pro každou spuštěnou instanci v back-endovém fondu zkontroluje sonda stavu dostupnost. Pokud je instance zastavená, nebude probírána, dokud se znovu neskončí.

  • Nenakonfigurujte virtuální síť s rozsahem IP adres vlastněným Microsoftem, který obsahuje 168.63.129.16. Konfigurace koliduje s IP adresou sondy stavu a může způsobit selhání vašeho scénáře.

  • Pokud chcete otestovat selhání sondy stavu nebo označit jednotlivé instance, pomocí skupiny zabezpečení sítě explicitně zablokujte sondu stavu. Vytvořte pravidlo NSG, které zablokuje cílový port nebo zdrojovou IP adresu pro simulaci selhání sondy.

  • Na rozdíl od pravidel vyrovnávání zatížení nepotřebují příchozí pravidla překladu adres (NAT) připojenou sondu stavu.

  • Nedoporučuje se blokovat IP adresu nebo port sondy stavu služby Azure Load Balancer s pravidly NSG. Jedná se o nepodporovaný scénář a může způsobit zpoždění pravidel NSG, což vede k nepřesné reprezentaci dostupnosti vašich back-endových instancí.

Sledování

Load Balancer úrovně Standard zveřejňuje stav sondy stavu koncového bodu a back-endu prostřednictvím služby Azure Monitor. Tyto metriky můžou využívat jiné služby Azure nebo partnerské aplikace. Protokoly služby Azure Monitor se pro Load Balancer úrovně Basic nepodporují.

Ip adresa zdroje sondy

Aby sonda stavu služby Azure Load Balancer mohla označit vaši instanci, musíte povolit IP adresu 168.63.129.16 ve všech skupinách zabezpečení sítě Azure a místních zásadách brány firewall. Značka služby AzureLoadBalancer identifikuje tuto zdrojovou IP adresu ve skupinách zabezpečení sítě a ve výchozím nastavení povoluje provoz sondy stavu. Více informací o této IP získáte tady.

Pokud v zásadách brány firewall nepovolíte zdrojovou IP adresu sondy, sonda stavu selže, protože se nemůže spojit s vaší instancí. Azure Load Balancer pak vaši instanci označí jako down kvůli selhání sondy stavu. Tato chybná konfigurace může způsobit selhání scénáře aplikace s vyrovnáváním zatížení. Všechny sondy stavu Load Balanceru IPv4 pocházejí z IP adresy 168.63.129.16 jako jejich zdroje. Sondy IPv6 používají jako zdroj adresu link-local adresu (fe80::1234:5678:9abc). V případě služby Azure Load Balancer se dvěma zásobníky musíte nakonfigurovat skupinu zabezpečení sítě, aby sonda stavu IPv6 fungovala.

Omezení

  • Sondy HTTPS nepodporují vzájemné ověřování pomocí klientského certifikátu.

  • Testy HTTP nepodporují použití názvů hostitelů k back-endům sond

  • Povolení časových razítek PROTOKOLU TCP může způsobit omezování nebo jiné problémy s výkonem, které pak můžou způsobit vypršení časového limitu sond stavu.

  • Sonda stavu nástroje pro vyrovnávání zatížení SKU Úrovně Basic se ve škálovací sadě virtuálních počítačů nepodporuje.

  • Sondy HTTP nepodporují sondy na následujících portech kvůli zabezpečení: 19, 21, 25, 70, 110, 119, 143, 220, 993.

Další kroky