← Cloudflare Load Balancing / load-balancing / understand-basics
Jak se endpointy a pooly stávají nezdravými
Mluvíme-li o dynamickém load balancingu, znamená to, že váš load balancer směruje požadavky pouze na endpointy, které daný provoz zvládnou zpracovat.
Ale jak váš load balancer vědět které endpointy dokážou provoz zpracovat? To určujeme pomocí systému monitorů, health monitorů a poolů.
Dynamické vyrovnávání zátěže
Dynamické vyrovnávání zátěže probíhá kombinací pooly, monitory a kontroly stavu.
flowchart RL
accTitle: Load balancing monitor flow
accDescr: Monitors issue health monitor requests, which validate the current status of servers within each pool.
Monitor -- Health Monitor ----> Endpoint2
Endpoint2 -- Response ----> Monitor
subgraph Pool
Endpoint1((Endpoint 1))
Endpoint2((Endpoint 2))
end
Jak se endpoint stane nezdravým
Kontroly stavu jsou požadavky, které monitor odesílá v pravidelných intervalech a podle nastavení monitoru vracejí pass nebo selhání hodnotu, abyste se ujistili, že koncový bod je stále schopen přijímat provoz.
Každý požadavek monitoru stavu se snaží zodpovědět dvě otázky:
- Je endpoint offline?: Reaguje koncový bod na požadavek health monitoru vůbec? Pokud ano, reaguje dostatečně rychle (jak je uvedeno v Časový limit pole)?
- Funguje endpoint podle očekávání?: Odpovídá koncový bod očekávanými kódy odpovědi HTTP? Obsahuje odpověď v těle konkrétní informace?
Pokud je odpověď na některou z těchto otázek „Ne“, endpoint požadavek monitoru stavu nesplní.
Pro každou možnost vybranou u poolu v poli Regiony monitoru stavu, Cloudflare odesílá požadavky monitoru stavu ze tří samostatných datacenter v daném regionu.
Pokud většina datových center v daném regionu projde požadavky monitoru stavu, je tento region považován za zdravý. Pokud je zdravá většina regionů, je za zdravý považován i samotný endpoint.
Analytika a protokoly vyrovnávání zátěže zobrazují pouze globální změny stavu.
Pro vyšší přesnost a konzistenci při změně stavu endpointu můžete také nastavit consecutive_up a consecutive_down parametry prostřednictvím API endpoint pro vytvoření monitoru. Aby se koncový bod změnil ze stavu funkční na nefunkční, musí být po sobě jdoucí počet krát označen jako funkční (podle hodnoty určené consecutive_down). Totéž platí, ze stavu nezdravého do zdravého, i pro consecutive_up.
Jak se pool stane nezdravým
Když jednotlivý endpoint se stane nezdravým, které mohou ovlivnit stav přidružených poolů (viditelný v dashboardu):
- Funkční: Všechny endpointy jsou zdravé.
- Degradovaný: Alespoň jeden endpoint je nezdravý, ale pool je stále považován za zdravý a může přijímat provoz.
- Kritická: Pool klesl pod počet dostupných endpointů uvedený v jeho Práh stavu a nebude přijímat provoz z vašeho load balanceru (pokud nejsou nezdravé i ostatní pooly a tento pool není označen jako Fallback Pool).
- Stav neznámý: K endpointům poolu nejsou připojeny žádné monitory, nebo monitory ještě nezjistily stav endpointů.
- Žádný stav: Vyhrazeno v rámci vašeho load balanceru pro Fallback Pool.
Distribuce provozu
Když pool dosáhne Kritická stavu začne váš load balancer přesměrovávat provoz podle svého Zásady směrování provozu:
-
Vypnuto:
- Pokud se aktivní pool stane nezdravým, provoz přejde na další pool v pořadí.
- Pokud se neaktivní pool stane nezdravým, provoz nadále směřuje do aktivního poolu (nezdravý pool se v pořadí failoveru přeskočí).
-
Všechny ostatní metody: Provoz se rozděluje mezi všechny zbývající pooly podle zásady traffic steering.
Záložní pooly
Tento pool slouží jako záložní řešení pro krajní případ, jeho stav se při směrování provozu nezohledňuje.
Fallback pooly jsou důležité, protože provoz může na váš load balancer přicházet i ve chvíli, kdy jsou všechny pooly nedostupné (zakázané nebo nezdravé). Load balancer pak potřebuje mít kam tento provoz nasměrovat, a proto ho odešle do fallback poolu.
Jak se load balancer stane nezdravým
Když se jeden nebo více poolů stane nezdravým, váš load balancer může v dashboardu zobrazit i jiný stav:
- Funkční: Všechny pooly jsou zdravé.
- Degradovaný: Alespoň jeden pool je nezdravý, ale provoz ještě nesměřuje na Fallback Pool.
- Kritická: Všechny pooly jsou nezdravé a provoz směřuje na Fallback Pool.
Pokud load balancer dosáhne Kritická stavu a pool sloužící jako váš záložní pool je také zakázán:
- Pokud Cloudflare váš hostname proxuje, zobrazí se chyba 530 HTTP/1016 Origin DNS failure.
- Pokud Cloudflare váš hostname neproxuje, zobrazí se záznam SOA.