Minule sme hovorili o schopnostiach NSX Edge z hľadiska statického a dynamického smerovania a dnes sa budeme zaoberať load balancerom.
Skôr ako začneme nastavovať, rád by som vám v krátkosti pripomenul hlavné typy vyváženia.
Теория
Všetky dnešné riešenia vyvažovania užitočného zaťaženia sa najčastejšie delia do dvoch kategórií: vyvažovanie na štvrtej (prepravná) a siedmej (aplikačnej) úrovni modelu.
- Balancer L4 najčastejšie ide o stredný proxy stojaci medzi klientom a množinou dostupných backendov, ktorý ukončí TCP spojenia (čiže samostatne odpovedá na SYN), vyberie backend a iniciuje novú TCP reláciu v jeho smere, pričom nezávisle odošle SYN. Tento typ je jedným zo základných, sú možné aj iné možnosti.
- Balancer L7 distribuuje prevádzku medzi dostupné backendy „sofistikovanejšie“ ako vyrovnávač L4. Môže sa rozhodnúť, ktorý backend si vybrať, napríklad na základe obsahu HTTP správy (URL, cookie atď.).
Bez ohľadu na typ môže balancer podporovať nasledujúce funkcie:
- Zisťovanie služby je proces určovania množiny dostupných backendov (statický, DNS, konzul, atď.).
- Kontrola funkčnosti zistených backendov (aktívny “ping” backendu pomocou HTTP požiadavky, pasívna detekcia problémov v TCP spojeniach, prítomnosť niekoľkých 503 HTTP kódov v odpovediach a pod.).
- Samotné vyvažovanie (okrúhle číslo, náhodný výber, hash zdrojovej IP, URI).
- Ukončenie TLS a overenie certifikátu.
- Možnosti súvisiace s bezpečnosťou (overovanie, prevencia DoS útokov, obmedzenie rýchlosti) a mnoho ďalších.
NSX Edge ponúka podporu pre dva režimy nasadenia vyrovnávača zaťaženia:
Proxy režim, alebo jednoručky. V tomto režime používa NSX Edge svoju IP adresu ako zdrojovú adresu pri odosielaní požiadavky na jeden z backendov. Balancér teda súčasne vykonáva funkcie Source a Destination NAT. Backend vidí všetku komunikáciu ako odoslanú z balancéra a priamo na ňu odpovedá. V takejto schéme musí byť balancer v rovnakom segmente siete ako interné servery.
Tu je postup:
1. Používateľ odošle požiadavku na VIP adresu (adresa balancéra), ktorá je nakonfigurovaná na Edge.
2. Edge vyberie jeden z backendov a vykoná cieľový NAT, pričom VIP adresu nahradí adresou zvoleného backendu.
3. Edge vykoná zdrojový NAT, pričom nahradí adresu používateľa, ktorý poslal požiadavku, svojou vlastnou.
4. Balík sa odošle na vybraný backend.
5. Backend neodpovedá priamo používateľovi, ale Edge, keďže pôvodná adresa používateľa bola zmenená na adresu balancéra.
6. Edge odošle odpoveď servera používateľovi.
Diagram je uvedený nižšie.
Transparentný alebo inline režim. V tomto scenári má balancer rozhrania na interných a externých sieťach. Zároveň neexistuje priamy prístup do vnútornej siete z vonkajšej. Zabudovaný nástroj na vyrovnávanie záťaže funguje ako brána NAT pre virtuálne stroje vo vnútornej sieti.
Mechanizmus je nasledovný:
1. Používateľ odošle požiadavku na VIP adresu (adresa balancéra), ktorá je nakonfigurovaná na Edge.
2. Edge vyberie jeden z backendov a vykoná cieľový NAT, pričom VIP adresu nahradí adresou zvoleného backendu.
3. Balík sa odošle na vybraný backend.
4. Backend dostane požiadavku s pôvodnou adresou používateľa (zdrojový NAT nebol vykonaný) a priamo na ňu odpovie.
5. Prevádzka je opäť akceptovaná vyrovnávačom záťaže, pretože v inline schéme zvyčajne funguje ako predvolená brána pre serverovú farmu.
6. Edge vykoná zdrojový NAT na odoslanie prevádzky používateľovi, pričom ako zdrojovú IP adresu použije jeho VIP.
Diagram je uvedený nižšie.
Prax
Moja testovacia lavica má 3 servery so systémom Apache, ktorý je nakonfigurovaný na prácu cez HTTPS. Edge vykoná cyklické vyvažovanie požiadaviek HTTPS, pričom každú novú požiadavku pridelí novému serveru.
Začnime
Generovanie SSL certifikátu, ktorý bude používať NSX Edge
Môžete importovať platný certifikát CA alebo použiť certifikát s vlastným podpisom. Pre tento test použijem self-signed.
- V rozhraní vCloud Director prejdite do nastavení služieb Edge.
- Prejdite na kartu Certifikáty. Zo zoznamu akcií vyberte pridanie nového CSR.
- Vyplňte požadované polia a kliknite na Ponechať.
- Vyberte novovytvorenú CSR a vyberte možnosť CSR s vlastným podpisom.
- Vyberte dobu platnosti certifikátu a kliknite na Ponechať
- Certifikát s vlastným podpisom sa zobrazí v zozname dostupných certifikátov.
Nastavenie profilu aplikácie
Aplikačné profily vám poskytujú úplnejšiu kontrolu nad sieťovou prevádzkou a zjednodušujú a zefektívňujú jej správu. Môžu sa použiť na definovanie správania pre konkrétne typy premávky.
- Prejdite na kartu Load Balancer a povoľte balancer. Možnosť Acceleration enabled tu umožňuje vyvažovaču použiť rýchlejšie vyvažovanie L4 namiesto L7.
- Prejdite na kartu Profil aplikácie a nastavte profil aplikácie. Kliknite na +.
- Nastavte názov profilu a vyberte typ premávky, pre ktorú bude profil použitý. Dovoľte mi vysvetliť niektoré parametre.
Vytrvalosť – ukladá a sleduje údaje relácie, napríklad: ktorý konkrétny server v oblasti obsluhuje požiadavku používateľa. To zaisťuje, že požiadavky používateľov sú smerované do rovnakého člena fondu počas trvania relácie alebo nasledujúcich relácií.
Povoliť prechod SSL – Keď je vybratá táto možnosť, NSX Edge prestane ukončovať SSL. Namiesto toho dôjde k ukončeniu priamo na serveroch, ktoré sa vyrovnávajú.
Vložte X-Forwarded-For HTTP hlavičku – umožňuje určiť zdrojovú IP adresu klienta, ktorý sa pripája k webovému serveru prostredníctvom nástroja na vyrovnávanie zaťaženia.
Povoliť SSL na strane fondu – umožňuje určiť, že vybraný fond pozostáva zo serverov HTTPS.
- Keďže budem vyvažovať návštevnosť HTTPS, musím povoliť SSL na strane fondu a vybrať predtým vygenerovaný certifikát na karte Certifikáty virtuálneho servera -> Certifikát služby.
- Podobne pre Pool Certificates -> Service Certificate.
Vytvárame pool serverov, ktorých návštevnosť bude vyvážená poolmi
- Prejdite na kartu Bazény. Kliknite na +.
- Nastavíme názov poolu, zvolíme algoritmus (použijem round robin) a typ monitorovania backendu zdravotnej kontroly.Voľba Transparent označuje, či sú počiatočné zdrojové IP klientov viditeľné pre interné servery.
- Ak je táto možnosť zakázaná, návštevnosť pre interné servery pochádza zo zdrojovej adresy IP balancéra.
- Ak je možnosť povolená, interné servery uvidia zdrojové IP klientov. V tejto konfigurácii musí NSX Edge fungovať ako predvolená brána, aby sa zabezpečilo, že vrátené pakety prejdú cez NSX Edge.
NSX podporuje nasledujúce vyvažovacie algoritmy:
- IP_HASH – výber servera na základe výsledkov hašovacej funkcie pre zdrojovú a cieľovú IP každého paketu.
- LEASTCONN – vyváženie prichádzajúcich spojení v závislosti od počtu už dostupných na konkrétnom serveri. Nové pripojenia budú presmerované na server s najmenším počtom pripojení.
- ROUND_ROBIN – nové spojenia sa postupne odosielajú na každý server podľa priradenej váhy.
- URI – ľavá časť URI (pred otáznikom) je hašovaná a vydelená celkovou hmotnosťou serverov v oblasti. Výsledok ukazuje, ktorý server prijme požiadavku, čím sa zabezpečí, že požiadavka bude vždy smerovaná na rovnaký server, pokiaľ zostanú dostupné všetky servery.
- HTTPHEADER – vyvažovanie na základe špecifickej HTTP hlavičky, ktorá môže byť špecifikovaná ako parameter. Ak hlavička chýba alebo nemá žiadnu hodnotu, použije sa algoritmus ROUND_ROBIN.
- URL – Každá požiadavka HTTP GET hľadá parameter URL zadaný ako argument. Ak za parametrom nasleduje znamienko rovnosti a hodnota, hodnota sa zahašuje a vydelí celkovou hmotnosťou spustených serverov. Výsledok ukazuje, ktorý server dostane požiadavku. Tento proces sa používa na sledovanie ID používateľov v požiadavkách a zabezpečenie toho, aby sa rovnaké ID používateľa vždy odosielalo na rovnaký server, pokiaľ všetky servery zostanú dostupné.
- V bloku Členovia kliknite na + a pridajte servery do fondu.
Tu je potrebné špecifikovať:- názov servera;
- IP adresa servera;
- port, na ktorom bude server prijímať prenos;
- port pre kontrolu stavu (Monitor healthcheck);
- váha – pomocou tohto parametra môžete upraviť proporcionálne množstvo prijatej návštevnosti pre konkrétneho člena fondu;
- Max Connections – maximálny počet pripojení k serveru;
- Minimálny počet pripojení – minimálny počet pripojení, ktoré musí server spracovať, kým sa prevádzka prepošle ďalšiemu členovi fondu.
Takto vyzerá finálna skupina troch serverov.
Pridanie virtuálneho servera
- Prejdite na kartu Virtuálne servery. Kliknite na +.
- Virtuálny server aktivujeme pomocou Enable Virtual Server.
Dáme mu názov, vyberieme predtým vytvorený profil aplikácie, fond a uvedieme IP adresu, na ktorú bude virtuálny server prijímať požiadavky zvonku. Špecifikujeme protokol HTTPS a port 443.
Voliteľné parametre tu:
Limit pripojenia – maximálny počet súčasných pripojení, ktoré môže virtuálny server spracovať;
Limit rýchlosti pripojenia (CPS) – maximálny počet nových prichádzajúcich požiadaviek za sekundu.
Tým je konfigurácia balancéra dokončená a môžete skontrolovať jeho funkčnosť. Servery majú jednoduchú konfiguráciu, ktorá vám umožňuje pochopiť, ktorý server z oblasti spracoval požiadavku. Počas nastavovania sme zvolili vyvažovací algoritmus Round Robin a parameter Weight pre každý server je rovný jednej, takže každú nasledujúcu požiadavku spracuje nasledujúci server z fondu.
Do prehliadača zadáme externú adresu balancera a vidíme:
Po obnovení stránky bude žiadosť spracovaná nasledujúcim serverom:
A znova - skontrolovať tretí server z fondu:
Pri kontrole môžete vidieť, že certifikát, ktorý nám Edge posiela, je ten istý, ktorý sme vygenerovali na úplnom začiatku.
Kontrola stavu balancéra z konzoly brány Edge. Ak to chcete urobiť, zadajte zobraziť službu loadbalancer pool.
Konfigurácia Service Monitor na kontrolu stavu serverov v oblasti
Pomocou Service Monitor môžeme sledovať stav serverov v backend poole. Ak odpoveď na požiadavku nie je podľa očakávania, server môže byť vyňatý z oblasti, aby neprijímal žiadne nové požiadavky.
V predvolenom nastavení sú nakonfigurované tri spôsoby overenia:
- TCP-monitor,
- HTTP monitor,
- HTTPS-monitor.
Vytvorme nový.
- Prejdite na kartu Monitorovanie služieb a kliknite na tlačidlo +.
- Vyberte si:
- názov novej metódy;
- interval, v ktorom sa budú žiadosti odosielať,
- časový limit čakania na odpoveď,
- typ monitorovania – HTTPS požiadavka metódou GET, očakávaný stavový kód – 200(OK) a URL požiadavky.
- Týmto je nastavenie nového Service Monitor dokončené; teraz ho môžeme použiť pri vytváraní fondu.
Nastavenie pravidiel aplikácie
Pravidlá aplikácie predstavujú spôsob, ako manipulovať s návštevnosťou na základe určitých spúšťačov. Pomocou tohto nástroja môžeme vytvárať pokročilé pravidlá vyvažovania záťaže, ktoré nemusia byť možné prostredníctvom aplikačných profilov alebo iných služieb dostupných na Edge Gateway.
- Ak chcete vytvoriť pravidlo, prejdite na kartu Pravidlá aplikácie nástroja Balancer.
- Vyberte názov, skript, ktorý bude pravidlo používať, a kliknite na Ponechať.
- Po vytvorení pravidla musíme upraviť už nakonfigurovaný virtuálny server.
- Na karte Rozšírené pridajte pravidlo, ktoré sme vytvorili.
Vo vyššie uvedenom príklade sme povolili podporu tlsv1.
Ešte pár príkladov:
Presmerujte premávku do iného fondu.
Pomocou tohto skriptu môžeme presmerovať prevádzku do iného vyrovnávacieho fondu, ak je hlavný fond mimo prevádzky. Aby pravidlo fungovalo, na vyvažovači musia byť nakonfigurované viaceré oblasti a všetci členovia hlavnej oblasti musia byť v stave vypnutia. Musíte zadať názov fondu, nie jeho ID.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Presmerujte návštevnosť na externý zdroj.
Tu presmerujeme návštevnosť na externú webovú stránku, ak sú všetci členovia hlavného fondu mimo prevádzky.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Ešte viac príkladov
To je z mojej strany o vyvažovačke všetko. Ak máte nejaké otázky, pýtajte sa, som pripravený odpovedať.
Zdroj: hab.com