VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

Časť prvá. úvodný
Druhá časť. Konfigurácia pravidiel brány firewall a NAT
Časť tretia. Konfigurácia DHCP
Časť štvrtá. Nastavenie smerovania

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. OSI. Model OSI nie je najlepším referenčným bodom pri popise metód vyvažovania. Ak napríklad vyvažovač L4 podporuje aj ukončenie TLS, stane sa potom vyvažovačom L7? Ale je to tak, ako to je.

  • 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.
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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.
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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.

  1. V rozhraní vCloud Director prejdite do nastavení služieb Edge.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. Prejdite na kartu Certifikáty. Zo zoznamu akcií vyberte pridanie nového CSR.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  3. Vyplňte požadované polia a kliknite na Ponechať.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  4. Vyberte novovytvorenú CSR a vyberte možnosť CSR s vlastným podpisom.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  5. Vyberte dobu platnosti certifikátu a kliknite na Ponechať
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  6. Certifikát s vlastným podpisom sa zobrazí v zozname dostupných certifikátov.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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.

  1. 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.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. Prejdite na kartu Profil aplikácie a nastavte profil aplikácie. Kliknite na +.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  3. 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.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  4. 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.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  5. Podobne pre Pool Certificates -> Service Certificate.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

Vytvárame pool serverov, ktorých návštevnosť bude vyvážená poolmi

  1. Prejdite na kartu Bazény. Kliknite na +.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. 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é.

    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

  3. V bloku Členovia kliknite na + a pridajte servery do fondu.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

    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.

    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

    Takto vyzerá finálna skupina troch serverov.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

Pridanie virtuálneho servera

  1. Prejdite na kartu Virtuálne servery. Kliknite na +.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. 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.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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:
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

Po obnovení stránky bude žiadosť spracovaná nasledujúcim serverom:
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

A znova - skontrolovať tretí server z fondu:
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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.
VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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ý.

  1. Prejdite na kartu Monitorovanie služieb a kliknite na tlačidlo +.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. 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.
  3. Týmto je nastavenie nového Service Monitor dokončené; teraz ho môžeme použiť pri vytváraní fondu.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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.

  1. Ak chcete vytvoriť pravidlo, prejdite na kartu Pravidlá aplikácie nástroja Balancer.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  2. Vyberte názov, skript, ktorý bude pravidlo používať, a kliknite na Ponechať.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  3. Po vytvorení pravidla musíme upraviť už nakonfigurovaný virtuálny server.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia
  4. Na karte Rozšírené pridajte pravidlo, ktoré sme vytvorili.
    VMware NSX pre najmenších. Časť 5: Konfigurácia nástroja na vyvažovanie zaťaženia

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 tu.

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

Pridať komentár