Jak Azure Load Balancer funguje
Azure Load Balancer funguje v přenosové vrstvě modelu OSI. Tato funkce vrstvy 4 umožňuje správu provozu na základě konkrétních vlastností provozu. Vlastnosti, včetně zdrojové a cílové adresy, typu protokolu TCP nebo UDP a čísla portu.
Load Balancer má několik prvků, které spolupracují na zajištění vysoké dostupnosti a výkonu aplikace:
- Front-endová IP adresa
- Pravidla vyrovnávání zatížení
- Back-endový fond
- Sondy stavu
- Příchozí pravidla překladu adres (NAT)
- Porty s vysokou dostupností
- Odchozí pravidla
Front-endová IP adresa
Front-endová IP adresa je adresa, kterou klienti používají pro připojení k webové aplikaci. Front-endová IP adresa může být veřejná nebo privátní IP adresa. Nástroje pro vyrovnávání zatížení Azure můžou mít několik front-endových IP adres. Výběr veřejné nebo privátní IP adresy určuje, jaký typ nástroje pro vyrovnávání zatížení se má vytvořit:
veřejné IP adresy: Veřejný nástroj pro vyrovnávání zatížení: Veřejný nástroj pro vyrovnávání zatížení mapuje veřejnou IP adresu a port příchozího provozu na privátní IP adresu a port virtuálního počítače. Konkrétní typy provozu můžete distribuovat napříč několika virtuálními počítači nebo službami pomocí pravidel vyrovnávání zatížení. Můžete například rozložit zatížení provozu webových požadavků na více webových serverů. Nástroj pro vyrovnávání zatížení mapuje provoz odpovědí z privátní IP adresy a portu virtuálního počítače na veřejnou IP adresu a port nástroje pro vyrovnávání zatížení. Potom odešle odpověď zpět do žádajícího klienta.
privátní IP adresa: Interní nástroj pro vyrovnávání zatížení: Interní nástroj pro vyrovnávání zatížení distribuuje provoz do prostředků uvnitř virtuální sítě. Azure omezuje přístup k front-endovým IP adresám virtuální sítě, které jsou vyrovnávány zatížením. Front-endové IP adresy a virtuální sítě nejsou nikdy přímo vystavené internetovému koncovému bodu. Interní obchodní aplikace běží v Azure a jsou přístupné z Azure nebo z místních prostředků prostřednictvím připojení VPN nebo ExpressRoute.
Pravidla Load Balanceru
Pravidlo vyrovnávání zátěže definuje, jak se síťový provoz distribuuje do back-endového fondu. Pravidlo mapuje danou kombinaci front-endových IP adres a portů na sadu back-endových IP adres a kombinace portů.
Provoz je řízen pomocí hash vytvořeného z pěti prvků.
- zdrojové IP adresy: IP adresa žádajícího klienta.
- zdrojový port: Port žádajícího klienta.
- cílová IP adresa: Cílová IP adresa požadavku.
- cílový port: Cílový port požadavku.
- Typ protokolu: Zadaný typ protokolu, TCP nebo UDP.
- Vazba relace: Zajišťuje, aby stejný uzel fondu vždy zpracovával provoz pro klienta.
Load Balancer umožňuje vyrovnávat zatížení služeb na více portech, několika IP adresách nebo obojím. Pro každou front-endovou IP adresu můžete nakonfigurovat různá pravidla vyrovnávání zatížení. U virtuálních počítačů IaaS se podporuje jenom několik front-endových konfigurací.
Load Balancer nemůže použít různá pravidla na základě interního obsahu provozu, protože funguje ve vrstvě 4 (transportní vrstva) modelu OSI. Pokud potřebujete spravovat provoz na základě vlastností vrstvy 7 (aplikační vrstvy), musíte nasadit řešení, jako je Azure Application Gateway.
Back-endová skupina
Back-endová skupina je skupina virtuálních počítačů nebo instancí ve škálovací sadě virtuálních počítačů reagujících na příchozí požadavek. Aby bylo možné efektivně škálovat náklady tak, aby splňovaly velké objemy příchozího provozu, doporučují pokyny pro výpočetní prostředí obecně přidávat do back-endového fondu další instance.
Load Balancer implementuje automatickou rekonfiguraci pro redistribuci zatížení napříč změněným počtem instancí při vertikálním navýšení nebo snížení kapacity instancí. Pokud jste například do back-endového fondu přidali dvě další instance virtuálních počítačů, služba Load Balancer by se překonfigurovala tak, aby začala vyrovnávat provoz do těchto instancí na základě již nakonfigurovaných pravidel vyrovnávání zatížení.
Sondy stavu
Zdravotní sonda se používá k určení zdravotního stavu instancí v backendové skupině. Tato sonda stavu určuje, jestli je instance v pořádku a může přijímat provoz. Pro sondy stavu můžete definovat prahovou hodnotu, která není v pořádku. Když sonda nereaguje, nástroj pro vyrovnávání zatížení přestane odesílat nová připojení do instancí, které nejsou v pořádku. Selhání sondy nemá vliv na existující připojení. Připojení pokračuje až do:
- Aplikace tok ukončí.
- Dojde k vypršení časového limitu nečinnosti.
- Virtuální počítač se vypne.
Load Balancer umožňuje konfigurovat různé typy sond stavu pro koncové body: TCP, HTTP a HTTPS.
- vlastní sonda TCP: Tato sonda spoléhá na navázání úspěšné TCP relace na definovaný port. Pokud na zadaném virtuálním počítači existuje naslouchací proces, sonda je úspěšná. Pokud je připojení odmítnuto, sonda selže. Můžete zadat prahovou hodnotu pro port, interval a prahovou hodnotu pro nefunkčnost.
- vlastní test HTTP nebo HTTPS: Vyrovnávač zatížení pravidelně sonduje váš koncový bod (ve výchozím nastavení každých 15 sekund). Instance je v pořádku, pokud reaguje na http 200 během časového limitu (výchozí hodnota 31 sekund). Jakýkoli stav jiný než HTTP 200 způsobí selhání sondy. Můžete zadat port (port), identifikátor URI pro vyžádání stavu z back-endu (URI), dobu mezi pokusy o sondu (Interval) a počet selhání, ke kterým musí dojít, aby instance byla považována za poškozenou (prahová hodnota není v pořádku).
Trvalost relace
Load Balancer ve výchozím nastavení distribuuje síťový provoz rovnoměrně mezi více instancí virtuálních počítačů. Poskytuje lepivost pouze v rámci přenosové relace. Trvalost relace určuje, jak by měl být provoz z klienta zpracován. Výchozí chování (Žádné) znamená, že jakýkoliv virtuální počítač, který je v pořádku, může zpracovávat následné požadavky z klienta.
Trvalost relace je také známa jako vazba relace, vazba na zdrojovou IP adresu nebo vazba na IP adresu klienta. Tento distribuční režim používá dvouprvkový hash (zdrojová IP adresa a cílová IP adresa) nebo tříprvkový hash (zdrojová IP adresa, cílová IP adresa a typ protokolu) pro směrování do back-end instance. Když používáte vytrvalost relace, připojení ze stejného klienta jsou směrována do stejné instance back-endu v rámci fondu back-endu. Můžete nakonfigurovat jednu z následujících možností trvalosti relace:
- žádné (výchozí): Určuje, že každý virtuální počítač, který je v pořádku, může požadavek zpracovat.
- IP adresa klienta (2-tice): Určuje, že stejná instance back-endu může zpracovávat následné požadavky od stejné IP adresy klienta.
- IP adresa a protokol klienta (trojice): Určuje, že stejná back-endová instance může zpracovávat po sobě jdoucí požadavky ze stejné IP adresy klienta a kombinace protokolu.
Toto chování můžete změnit konfigurací jedné z možností popsaných v následujících částech.
Porty s vysokou dostupností
Pravidlo nástroje pro vyrovnávání zatížení nakonfigurované s protocol - all and port - 0
se nazývá pravidlo portu vysoké dostupnosti (HA). Toto pravidlo umožňuje jednomu pravidlu vyrovnávat zatížení všech toků TCP a UDP, které přicházejí na všechny porty interního standardního nástroje pro vyrovnávání zatížení.
Rozhodnutí o vyrovnávání zatížení se provádí pro jednotlivé toky. Tato akce je založená na následujícím pětičlenném konektoru:
- Zdrojová IP adresa
- Zdrojový port
- Cílová IP adresa
- Cílový port
- Protokol
Pravidla vyrovnávání zatížení portů vysoké dostupnosti vám pomůžou s důležitými scénáři, jako je vysoká dostupnost a škálování síťových virtuálních zařízení v rámci virtuálních sítí. Tato funkce může pomoci, když musí být vyváženo zatížení velkého počtu portů.
Příchozí pravidla překladu adres (NAT)
Pravidla vyrovnávání zatížení můžete použít v kombinaci s pravidly překladu adres (NAT). Například můžete použít překlad adres (NAT) z veřejné adresy vyrovnávače zatížení na TCP port 3389 na konkrétním virtuálním počítači. Tato kombinace pravidel umožňuje přístup k vzdálené ploše z vnějšku Azure.
Odchozí pravidla
Odchozí pravidlo konfiguruje překlad zdrojových síťových adres (SNAT) pro všechny virtuální počítače nebo instance identifikované fondem back-end. Toto pravidlo umožňuje instancím v back-endu komunikovat (odchozí) s internetem nebo jinými veřejnými koncovými body.