VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Prvi dio. uvodni
Drugi dio. Konfiguriranje Vatrozida i NAT pravila
treći dio. Konfiguriranje DHCP-a
Četvrti dio. Postavljanje usmjeravanja

Prošli put smo govorili o mogućnostima NSX Edgea u smislu statičkog i dinamičkog usmjeravanja, a danas ćemo se pozabaviti load balancerom.
Prije nego što počnemo s postavljanjem, želio bih vas ukratko podsjetiti na glavne vrste balansiranja.

teorija

Sva današnja rješenja za balansiranje nosivosti najčešće se dijele u dvije kategorije: balansiranje na četvrtoj (transportnoj) i sedmoj (aplikacijskoj) razini modela. ILI AKO. OSI model nije najbolja referentna točka kada se opisuju metode balansiranja. Na primjer, ako L4 balanser također podržava TLS završetak, postaje li tada L7 balanser? Ali to je što je.

  • Balanser L4 najčešće je to srednji proxy koji stoji između klijenta i skupa dostupnih backend-ova, koji prekida TCP veze (to jest, neovisno odgovara na SYN), odabire backend i pokreće novu TCP sesiju u svom smjeru, neovisno šaljući SYN. Ova vrsta je jedna od osnovnih, moguće su i druge opcije.
  • Balanser L7 distribuira promet preko dostupnih pozadinskih sustava "sofisticiranije" nego što to radi L4 balanser. Može odlučiti koju pozadinu odabrati na temelju, primjerice, sadržaja HTTP poruke (URL, kolačić itd.).

Bez obzira na vrstu, balanser može podržati sljedeće funkcije:

  • Otkrivanje usluge je proces utvrđivanja skupa dostupnih pozadina (Static, DNS, Consul, Etcd, itd.).
  • Provjera funkcionalnosti otkrivenih pozadina (aktivni “ping” pozadine pomoću HTTP zahtjeva, pasivna detekcija problema u TCP vezama, prisutnost nekoliko 503 HTTP kodova u odgovorima itd.).
  • Samo balansiranje (round robin, nasumični odabir, izvorni IP hash, URI).
  • TLS završetak i provjera certifikata.
  • Opcije vezane uz sigurnost (provjera autentičnosti, sprječavanje DoS napada, ograničenje brzine) i još mnogo toga.

NSX Edge nudi podršku za dva načina implementacije balansera opterećenja:

Proxy način rada ili s jednom rukom. U ovom načinu rada, NSX Edge koristi svoju IP adresu kao izvornu adresu kada šalje zahtjev jednoj od pozadina. Dakle, balanser istovremeno obavlja funkcije izvornog i odredišnog NAT-a. Pozadina vidi sav promet koji šalje balanser i odgovara izravno na njega. U takvoj shemi, balanser mora biti u istom mrežnom segmentu s internim poslužiteljima.

Evo kako to ide:
1. Korisnik šalje zahtjev na VIP adresu (adresa balansera) koja je konfigurirana na Edge-u.
2. Edge odabire jednu od pozadina i izvodi odredišni NAT, zamjenjujući VIP adresu adresom odabrane pozadine.
3. Edge izvodi izvorni NAT, zamjenjujući adresu korisnika koji je poslao zahtjev svojom vlastitom.
4. Paket se šalje odabranoj pozadini.
5. Pozadina ne odgovara izravno korisniku, već Edgeu, budući da je izvorna adresa korisnika promijenjena u adresu balansera.
6. Edge korisniku prenosi odgovor poslužitelja.
Dijagram je ispod.
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Transparentni ili inline način. U ovom scenariju, balanser ima sučelja na internoj i eksternoj mreži. Istodobno, ne postoji izravan pristup unutarnjoj mreži iz vanjske. Ugrađeni balanser opterećenja djeluje kao NAT pristupnik za virtualna računala na internoj mreži.

Mehanizam je sljedeći:
1. Korisnik šalje zahtjev na VIP adresu (adresa balansera) koja je konfigurirana na Edge-u.
2. Edge odabire jednu od pozadina i izvodi odredišni NAT, zamjenjujući VIP adresu adresom odabrane pozadine.
3. Paket se šalje odabranoj pozadini.
4. Pozadina prima zahtjev s originalnom adresom korisnika (izvorni NAT nije izvršen) i odgovara izravno na njega.
5. Promet ponovno prihvaća balanser opterećenja, budući da u inline shemi obično djeluje kao zadani pristupnik za farmu poslužitelja.
6. Edge izvodi izvorni NAT za slanje prometa korisniku, koristeći njegov VIP kao izvornu IP adresu.
Dijagram je ispod.
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Praksa

Moj testni stol ima 3 poslužitelja koji pokreću Apache, koji je konfiguriran za rad preko HTTPS-a. Edge će izvršiti kružno balansiranje HTTPS zahtjeva, prosljeđujući svaki novi zahtjev novom poslužitelju.
Započnimo.

Generiranje SSL certifikata koji će koristiti NSX Edge
Možete uvesti važeći CA certifikat ili koristiti samopotpisani. Za ovaj test koristit ću samopotpisani.

  1. U sučelju vCloud Director idite na postavke rubnih usluga.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Idite na karticu Certifikati. S popisa radnji odaberite dodavanje novog CSR-a.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  3. Ispunite obavezna polja i kliknite Zadrži.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  4. Odaberite novostvoreni CSR i odaberite opciju samopotpisnog CSR-a.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  5. Odaberite rok valjanosti certifikata i kliknite Zadrži
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  6. Samopotpisani certifikat pojavljuje se na popisu dostupnih.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Postavljanje profila aplikacije
Aplikacijski profili daju vam potpuniju kontrolu nad mrežnim prometom i čine njegovo upravljanje jednostavnim i učinkovitim. Mogu se koristiti za definiranje ponašanja za određene vrste prometa.

  1. Idite na karticu Load Balancer i omogućite balanser. Ovdje omogućena opcija Acceleration omogućuje balanseru da koristi brže L4 balansiranje umjesto L7.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Idite na karticu Profil aplikacije da postavite profil aplikacije. Pritisnite +.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  3. Postavite naziv profila i odaberite vrstu prometa za koji će se profil primjenjivati. Dopustite mi da objasnim neke parametre.
    Upornost – pohranjuje i prati podatke o sesiji, na primjer: koji specifični poslužitelj u skupu servisira korisnički zahtjev. Ovo osigurava da se korisnički zahtjevi usmjeravaju na istog člana skupa tijekom trajanja sesije ili sljedećih sesija.
    Omogući SSL prolaz – Kada je ova opcija odabrana, NSX Edge prestaje prekidati SSL. Umjesto toga, prekid se događa izravno na poslužiteljima koji se balansiraju.
    Umetnite HTTP zaglavlje X-Forwarded-For – omogućuje određivanje izvorne IP adrese klijenta koji se spaja na web poslužitelj putem balansera opterećenja.
    Omogućite SSL na strani bazena – omogućuje vam da odredite da se odabrani skup sastoji od HTTPS poslužitelja.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  4. Budući da ću balansirati HTTPS promet, moram omogućiti SSL na strani bazena i odabrati prethodno generirani certifikat u kartici Certifikati virtualnog poslužitelja -> Certifikat usluge.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  5. Slično za Pool Certificates -> Service Certificate.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Stvaramo skup poslužitelja, čiji će promet biti uravnotežen

  1. Idite na karticu Pools. Pritisnite +.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Postavili smo naziv skupa, odabrali algoritam (koristit ću kružni postupak) i vrstu nadzora za pozadinu provjere zdravlja.Opcija Transparent označava jesu li početni izvorni IP-ovi klijenata vidljivi internim poslužiteljima.
    • Ako je opcija onemogućena, promet za interne poslužitelje dolazi s izvorne IP adrese balansera.
    • Ako je opcija uključena, interni poslužitelji vide izvornu IP adresu klijenata. U ovoj konfiguraciji, NSX Edge mora djelovati kao zadani pristupnik kako bi se osiguralo da vraćeni paketi prolaze kroz NSX Edge.

    NSX podržava sljedeće algoritme balansiranja:

    • IP_HASH – odabir poslužitelja na temelju rezultata hash funkcije za izvorni i odredišni IP svakog paketa.
    • NAJMANJE KON – balansiranje dolaznih veza, ovisno o broju koji je već dostupan na pojedinom poslužitelju. Nove veze bit će usmjerene na poslužitelj s najmanje veza.
    • ROUND_ROBIN – nove veze se redom šalju svakom poslužitelju, u skladu s težinom koja mu je dodijeljena.
    • URI – lijevi dio URI-ja (ispred upitnika) raspršuje se i dijeli s ukupnom težinom poslužitelja u skupu. Rezultat pokazuje koji poslužitelj prima zahtjev, osiguravajući da se zahtjev uvijek usmjerava na isti poslužitelj, sve dok su svi poslužitelji dostupni.
    • HTTPHEADER – balansiranje na temelju specifičnog HTTP zaglavlja, koje se može navesti kao parametar. Ako zaglavlje nedostaje ili nema nikakvu vrijednost, primjenjuje se algoritam ROUND_ROBIN.
    • URL – Svaki HTTP GET zahtjev traži URL parametar naveden kao argument. Ako je iza parametra znak jednakosti i vrijednost, tada se vrijednost raspršuje i dijeli s ukupnom težinom pokrenutih poslužitelja. Rezultat pokazuje koji poslužitelj prima zahtjev. Ovaj se proces koristi za praćenje korisničkih ID-ova u zahtjevima i osiguravanje da se isti korisnički ID uvijek šalje na isti poslužitelj, sve dok su svi poslužitelji dostupni.

    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

  3. U bloku Članovi kliknite + za dodavanje poslužitelja u skup.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

    Ovdje morate navesti:

    • naziv poslužitelja;
    • IP adresa poslužitelja;
    • port na kojem će poslužitelj primati promet;
    • luka za provjeru ispravnosti (Monitor healthcheck);
    • težina – pomoću ovog parametra možete prilagoditi proporcionalnu količinu prometa primljenog za određenog člana skupa;
    • Max Connections – najveći broj veza s poslužiteljem;
    • Minimalne veze – najmanji broj veza koje poslužitelj mora obraditi prije nego što se promet proslijedi sljedećem članu skupa.

    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

    Ovako izgleda konačni skup od tri poslužitelja.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Dodavanje virtualnog poslužitelja

  1. Idite na karticu Virtualni poslužitelji. Pritisnite +.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Aktiviramo virtualni poslužitelj pomoću Enable Virtual Server.
    Dajemo mu ime, odabiremo prethodno kreirani Application Profile, Pool i označavamo IP adresu na koju će Virtualni poslužitelj primati zahtjeve izvana. Specificiramo HTTPS protokol i port 443.
    Izborni parametri ovdje:
    Ograničenje veze – najveći broj istodobnih veza koje virtualni poslužitelj može obraditi;
    Ograničenje brzine povezivanja (CPS) – najveći broj novih dolaznih zahtjeva u sekundi.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Ovo dovršava konfiguraciju balansera; možete provjeriti njegovu funkcionalnost. Poslužitelji imaju jednostavnu konfiguraciju koja vam omogućuje da razumijete koji je poslužitelj iz skupa obradio zahtjev. Tijekom postavljanja odabrali smo Round Robin algoritam balansiranja, a parametar Weight za svaki poslužitelj je jednak jedan, tako da će svaki sljedeći zahtjev obraditi sljedeći poslužitelj iz skupa.
Unesemo vanjsku adresu balansera u preglednik i vidimo:
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Nakon osvježavanja stranice, zahtjev će obraditi sljedeći poslužitelj:
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

I opet - za provjeru trećeg poslužitelja iz skupa:
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Prilikom provjere možete vidjeti da je certifikat koji nam šalje Edge isti onaj koji smo generirali na samom početku.

Provjera statusa balansera s konzole Edge pristupnika. Da biste to učinili, unesite prikaži bazen balansera opterećenja usluge.
VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Konfiguriranje Service Monitora za provjeru statusa poslužitelja u skupu
Korištenjem Service Monitora možemo pratiti status poslužitelja u backend skupu. Ako odgovor na zahtjev nije očekivani, poslužitelj se može izvaditi iz skupa tako da ne prima nove zahtjeve.
Prema zadanim postavkama konfigurirana su tri načina provjere:

  • TCP-monitor,
  • HTTP monitor,
  • HTTPS-monitor.

Stvorimo novu.

  1. Idite na karticu Praćenje usluge, kliknite +.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Odaberite:
    • naziv za novu metodu;
    • interval u kojem će se zahtjevi slati,
    • vrijeme čekanja na odgovor,
    • vrsta nadzora – HTTPS zahtjev korištenjem GET metode, očekivani statusni kod – 200(OK) i URL zahtjeva.
  3. Ovime je dovršeno postavljanje novog Monitora usluge; sada ga možemo koristiti prilikom stvaranja skupa.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

Postavljanje pravila aplikacije

Pravila aplikacije način su manipuliranja prometom na temelju određenih okidača. Pomoću ovog alata možemo stvoriti napredna pravila za uravnoteženje opterećenja koja možda nisu moguća putem profila aplikacije ili drugih usluga dostupnih na Edge Gatewayu.

  1. Za izradu pravila idite na karticu Pravila aplikacije balansera.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  2. Odaberite naziv, skriptu koja će koristiti pravilo i kliknite Zadrži.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  3. Nakon što je pravilo kreirano, potrebno je urediti već konfigurirani virtualni poslužitelj.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja
  4. Na kartici Napredno dodajte pravilo koje smo izradili.
    VMware NSX za najmlađe. Dio 5: Konfiguriranje balansera opterećenja

U gornjem primjeru omogućili smo tlsv1 podršku.

Još par primjera:

Preusmjerite promet na drugi bazen.
Ovom skriptom možemo preusmjeriti promet na drugi bazen za balansiranje ako glavni skup ne radi. Da bi pravilo funkcioniralo, više bazena mora biti konfigurirano na balanseru i svi članovi glavnog skupa moraju biti u neaktivnom stanju. Morate navesti naziv bazena, a ne njegov ID.

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME

Preusmjerite promet na vanjski resurs.
Ovdje preusmjeravamo promet na vanjsko web mjesto ako svi članovi glavnog skupa ne rade.

acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down

Još više primjera ovdje.

To je sve što se tiče balansera. Ako imate pitanja, pitajte, spreman sam odgovoriti.

Izvor: www.habr.com

Dodajte komentar