VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Pirma dalis. įvadinis
Antra dalis. Užkardos ir NAT taisyklių konfigūravimas
Trečia dalis. DHCP konfigūravimas
Ketvirta dalis. Maršruto nustatymas

Praėjusį kartą kalbėjome apie NSX Edge galimybes statinio ir dinaminio maršruto parinkimo srityje, o šiandien kalbėsime apie apkrovos balansavimo priemonę.
Prieš pradedant kurti, norėčiau trumpai priminti apie pagrindines balansavimo rūšis.

Теория

Visi šiandieniniai naudingosios apkrovos balansavimo sprendimai dažniausiai skirstomi į dvi kategorijas: balansavimas ketvirtame (transporto) ir septintame (taikymas) modelio lygiuose. ARBA JEIGU. OSI modelis nėra geriausias atskaitos taškas aprašant balansavimo metodus. Pavyzdžiui, jei L4 balansuotojas taip pat palaiko TLS nutraukimą, ar tada jis tampa L7 balansuotoju? Bet yra tai, kas yra.

  • Balansuotojas L4 dažniausiai tai yra tarpinis tarpinis serveris, stovintis tarp kliento ir galimų užpakalinių sistemų rinkinio, kuris nutraukia TCP ryšius (tai yra savarankiškai reaguoja į SYN), pasirenka backend ir inicijuoja naują TCP seansą jo kryptimi, savarankiškai siųsdamas SYN. Šis tipas yra vienas iš pagrindinių, galimi ir kiti variantai.
  • Balansuotojas L7 paskirsto srautą turimoms užpakalinėms sistemoms „rafinuoliau“ nei L4 balansavimo priemonė. Ji gali nuspręsti, kurią užpakalinę programą pasirinkti, atsižvelgdama, pavyzdžiui, į HTTP pranešimo turinį (URL, slapuką ir kt.).

Nepriklausomai nuo tipo, balansyras gali palaikyti šias funkcijas:

  • Paslaugos aptikimas yra galimų užpakalinių sistemų (statinių, DNS, konsulinių, kt. ir kt.) nustatymo procesas.
  • Aptiktų užpakalinių sistemų funkcionalumo tikrinimas (aktyvus užpakalinės programos „ping“ naudojant HTTP užklausą, pasyvus TCP ryšių problemų aptikimas, kelių 503 HTTP kodų buvimas atsakymuose ir kt.).
  • Pats balansavimas (apvalus, atsitiktinis pasirinkimas, šaltinio IP maiša, URI).
  • TLS nutraukimas ir sertifikato patikrinimas.
  • Su sauga susijusios parinktys (autentifikavimas, DoS atakų prevencija, greičio ribojimas) ir daug daugiau.

NSX Edge palaiko du apkrovos balansavimo priemonės diegimo režimus:

Tarpinio serverio režimas arba viena ranka. Šiuo režimu NSX Edge naudoja savo IP adresą kaip šaltinio adresą, kai siunčia užklausą vienai iš užpakalinių sistemų. Taigi balansuotojas vienu metu atlieka šaltinio ir paskirties NAT funkcijas. Užpakalinė programa mato visą srautą, siunčiamą iš balansavimo priemonės, ir tiesiogiai į jį reaguoja. Tokioje schemoje balansuotojas turi būti tame pačiame tinklo segmente su vidiniais serveriais.

Štai kaip viskas vyksta:
1. Vartotojas siunčia užklausą VIP adresu (balansavimo adresu), kuris sukonfigūruotas Edge.
2. Edge pasirenka vieną iš užpakalinių sistemų ir atlieka paskirties NAT, pakeisdamas VIP adresą pasirinktos užpakalinės programos adresu.
3. Edge atlieka šaltinio NAT, pakeisdamas užklausą išsiuntusio vartotojo adresą savo.
4. Paketas siunčiamas į pasirinktą užpakalinę programą.
5. Backend atsako ne tiesiai į vartotoją, o į Edge, nes pradinis vartotojo adresas buvo pakeistas į balansuotojo adresą.
6. Edge perduoda serverio atsakymą vartotojui.
Diagrama yra žemiau.
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Skaidrus arba tiesioginis režimas. Pagal šį scenarijų balansuotojas turi sąsajas vidiniuose ir išoriniuose tinkluose. Tuo pačiu metu nėra tiesioginės prieigos prie vidinio tinklo iš išorinio. Integruotas apkrovos balansavimo įrankis veikia kaip NAT šliuzas virtualioms mašinoms vidiniame tinkle.

Mechanizmas yra toks:
1. Vartotojas siunčia užklausą VIP adresu (balansavimo adresu), kuris sukonfigūruotas Edge.
2. Edge pasirenka vieną iš užpakalinių sistemų ir atlieka paskirties NAT, pakeisdamas VIP adresą pasirinktos užpakalinės programos adresu.
3. Paketas siunčiamas į pasirinktą užpakalinę programą.
4. Užpakalinė programa gauna užklausą su pirminiu vartotojo adresu (šaltinio NAT nebuvo atlikta) ir tiesiogiai į ją atsako.
5. Apkrovos balansavimo priemonė vėl priima srautą, nes tiesioginėje schemoje jis paprastai veikia kaip numatytasis serverių ūkio šliuzas.
6. „Edge“ atlieka šaltinio NAT, kad nukreiptų srautą vartotojui, naudodamas jo VIP kaip šaltinio IP adresą.
Diagrama yra žemiau.
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Praktika

Mano bandymų stende yra 3 serveriai, kuriuose veikia „Apache“, kuris sukonfigūruotas veikti per HTTPS. Edge atliks apvalų HTTPS užklausų balansavimą, kiekvieną naują užklausą perkeldamas į naują serverį.
Pradėkime.

Generuojamas SSL sertifikatas, kurį naudos NSX Edge
Galite importuoti galiojantį CA sertifikatą arba naudoti pasirašytą. Šiam testui naudosiu savarankiškai pasirašytą.

  1. „vCloud Director“ sąsajoje eikite į „Edge“ paslaugų nustatymus.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Eikite į skirtuką Sertifikatai. Veiksmų sąraše pasirinkite pridėti naują CSR.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  3. Užpildykite reikiamus laukus ir spustelėkite Laikyti.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  4. Pasirinkite naujai sukurtą CSR ir pasirinkite savarankiško CSR pasirašymo parinktį.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  5. Pasirinkite sertifikato galiojimo laiką ir spustelėkite Laikyti
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  6. Savarankiškai pasirašytas sertifikatas rodomas galimų sertifikatų sąraše.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Programos profilio nustatymas
Programų profiliai suteikia pilnesnę tinklo srauto kontrolę ir leidžia jį valdyti paprastai bei efektyviai. Jie gali būti naudojami norint apibrėžti konkrečių tipų srautą.

  1. Eikite į Load Balancer skirtuką ir įjunkite balansavimo priemonę. Parinktis Acceleration įgalinta čia leidžia balansuotojui naudoti greitesnį L4 balansavimą, o ne L7.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Eikite į skirtuką Programos profilis, kad nustatytumėte programos profilį. Spustelėkite +.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  3. Nustatykite profilio pavadinimą ir pasirinkite srauto tipą, kuriam profilis bus taikomas. Leiskite man paaiškinti kai kuriuos parametrus.
    Atkaklumas – saugo ir seka seanso duomenis, pavyzdžiui: kuris konkretus telkinio serveris aptarnauja vartotojo užklausą. Taip užtikrinama, kad vartotojų užklausos būtų nukreipiamos į tą patį telkinio narį per visą seanso arba vėlesnių seansų laikotarpį.
    Įgalinti SSL perdavimą – Kai pasirenkama ši parinktis, NSX Edge nustoja nutraukti SSL. Vietoj to, nutraukimas įvyksta tiesiogiai serveriuose, kurie yra subalansuojami.
    Įdėkite X-Forwarded-For HTTP antraštę – leidžia nustatyti kliento, prisijungiančio prie žiniatinklio serverio per apkrovos balansavimo priemonę, šaltinio IP adresą.
    Įgalinti baseino pusės SSL – leidžia nurodyti, kad pasirinktą telkinį sudarytų HTTPS serveriai.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  4. Kadangi aš balansuosiu HTTPS srautą, turiu įjungti baseino pusės SSL ir skirtuke Virtualaus serverio sertifikatai -> Paslaugos sertifikatas pasirinkti anksčiau sugeneruotą sertifikatą.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  5. Panašiai ir baseino sertifikatams -> Paslaugos sertifikatas.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Sukuriame serverių telkinį, kurio srautas bus subalansuotas Pools

  1. Eikite į skirtuką Baseinai. Spustelėkite +.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Nustatome baseino pavadinimą, pasirenkame algoritmą (naudosiu round robin) ir būklės patikrinimo backend stebėjimo tipą.. Opcija Transparent nurodo, ar klientų pradiniai šaltinio IP yra matomi vidiniams serveriams.
    • Jei parinktis išjungta, vidinių serverių srautas gaunamas iš balansavimo šaltinio IP.
    • Jei parinktis įjungta, vidiniai serveriai mato klientų šaltinio IP. Šioje konfigūracijoje NSX Edge turi veikti kaip numatytasis šliuzas, kad būtų užtikrinta, jog grąžinami paketai praeitų per NSX Edge.

    NSX palaiko šiuos balansavimo algoritmus:

    • IP_HASH – serverio pasirinkimas pagal maišos funkcijos rezultatus kiekvieno paketo šaltinio ir paskirties IP.
    • LEASTKONAS – gaunamų jungčių balansavimas, priklausomai nuo konkrečiame serveryje jau turimo skaičiaus. Nauji ryšiai bus nukreipti į serverį, turintį mažiausiai ryšių.
    • ROUND_ROBIN – į kiekvieną serverį paeiliui siunčiami nauji ryšiai pagal jam priskirtą svorį.
    • URI – kairioji URI dalis (prieš klaustuką) sumaišoma ir padalinama iš bendro serverių svorio telkinyje. Rezultatas rodo, kuris serveris gauna užklausą, užtikrinant, kad užklausa visada būtų nukreipta į tą patį serverį, kol visi serveriai bus pasiekiami.
    • HTTPHEADER – balansavimas pagal konkrečią HTTP antraštę, kurią galima nurodyti kaip parametrą. Jei antraštės trūksta arba ji neturi jokios reikšmės, taikomas ROUND_ROBIN algoritmas.
    • URL adresas – Kiekviena HTTP GET užklausa ieško URL parametro, nurodyto kaip argumentas. Jei po parametro yra lygybės ženklas ir reikšmė, tada reikšmė yra maišoma ir padalyta iš bendro veikiančių serverių svorio. Rezultatas rodo, kuris serveris gauna užklausą. Šis procesas naudojamas siekiant sekti vartotojų ID užklausose ir užtikrinti, kad tas pats vartotojo ID visada būtų siunčiamas į tą patį serverį, kol visi serveriai bus pasiekiami.

    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

  3. Narių bloke spustelėkite +, kad įtrauktumėte serverius į telkinį.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

    Čia reikia nurodyti:

    • serverio pavadinimas;
    • Serverio IP adresas;
    • prievadas, kuriuo serveris gaus srautą;
    • prievadas sveikatos patikrinimui (Monitor healthcheck);
    • svoris – šiuo parametru galite reguliuoti proporcingą srauto kiekį, gaunamą konkrečiam telkinio nariui;
    • Max Connections – maksimalus prisijungimų prie serverio skaičius;
    • Minimalūs ryšiai – minimalus jungčių skaičius, kurį serveris turi apdoroti, kad srautas būtų persiunčiamas kitam telkinio nariui.

    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

    Taip atrodo galutinis trijų serverių fondas.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Pridedamas virtualus serveris

  1. Eikite į skirtuką Virtualūs serveriai. Spustelėkite +.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Suaktyviname virtualų serverį naudodami Įgalinti virtualų serverį.
    Suteikiame jam pavadinimą, pasirenkame anksčiau sukurtą Application Profile, Pool ir nurodome IP adresą, kuriuo Virtualusis serveris gaus užklausas iš išorės. Nurodome HTTPS protokolą ir 443 prievadą.
    Pasirenkami parametrai čia:
    Ryšio riba – maksimalus virtualaus serverio vienu metu galimų prisijungimų skaičius;
    Ryšio greičio riba (CPS) – maksimalus naujų įeinančių užklausų skaičius per sekundę.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Tai užbaigia balansyro konfigūraciją, galite patikrinti jo funkcionalumą. Serveriai turi paprastą konfigūraciją, leidžiančią suprasti, kuris serveris iš telkinio apdorojo užklausą. Sąrankos metu pasirinkome Round Robin balansavimo algoritmą, o kiekvieno serverio svorio parametras yra lygus vienetui, todėl kiekvieną paskesnę užklausą apdoros kitas serveris iš telkinio.
Naršyklėje įvedame išorinį balansyro adresą ir matome:
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Atnaujinus puslapį, užklausą apdoros šis serveris:
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Ir vėl - patikrinti trečiąjį serverį iš baseino:
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Tikrindami matote, kad sertifikatas, kurį mums siunčia Edge, yra tas pats, kurį sugeneravome pačioje pradžioje.

Tikrinama balansyro būsena iš Edge gateway konsolės. Norėdami tai padaryti, įveskite parodyti serviso apkrovos balansavimo baseiną.
VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

„Service Monitor“ konfigūravimas, kad būtų galima patikrinti telkinyje esančių serverių būseną
Naudodami „Service Monitor“ galime stebėti serverių būseną baziniame baseine. Jei atsakymas į užklausą nėra toks, kokio tikėtasi, serverį galima išimti iš telkinio, kad jis negautų jokių naujų užklausų.
Pagal numatytuosius nustatymus sukonfigūruoti trys patvirtinimo metodai:

  • TCP monitorius,
  • HTTP monitorius,
  • HTTPS monitorius.

Sukurkime naują.

  1. Eikite į skirtuką Paslaugų stebėjimas, spustelėkite +.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Pasirinkite:
    • naujo metodo pavadinimas;
    • užklausų siuntimo intervalas,
    • laukimas atsakymo,
    • stebėjimo tipas – HTTPS užklausa naudojant GET metodą, numatomas būsenos kodas – 200(OK) ir užklausos URL.
  3. Tai užbaigia naujojo paslaugų monitoriaus sąranką; dabar galime jį naudoti kurdami telkinį.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Taikymo taisyklių nustatymas

Taikymo taisyklės yra būdas manipuliuoti srautu pagal tam tikrus aktyviklius. Naudodami šį įrankį galime sukurti išplėstines apkrovos balansavimo taisykles, kurios gali būti neįmanomos naudojant programų profilius ar kitas Edge Gateway teikiamas paslaugas.

  1. Norėdami sukurti taisyklę, eikite į balansyro skirtuką Taikymo taisyklės.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  2. Pasirinkite pavadinimą, scenarijų, kuris naudos taisyklę, ir spustelėkite Laikyti.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  3. Sukūrę taisyklę, turime redaguoti jau sukonfigūruotą virtualųjį serverį.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas
  4. Skirtuke Išsamiau pridėkite mūsų sukurtą taisyklę.
    VMware NSX mažiesiems. 5 dalis: Apkrovos balansavimo priemonės konfigūravimas

Aukščiau pateiktame pavyzdyje įjungėme tlsv1 palaikymą.

Dar pora pavyzdžių:

Nukreipkite srautą į kitą baseiną.
Naudodami šį scenarijų galime nukreipti srautą į kitą balansavimo telkinį, jei pagrindinis telkinys neveikia. Kad taisyklė veiktų, balansavimo priemonėje turi būti sukonfigūruoti keli telkiniai ir visi pagrindinio telkinio nariai turi būti išjungtos būsenos. Turite nurodyti telkinio pavadinimą, o ne ID.

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

Peradresuokite srautą į išorinį šaltinį.
Čia nukreipiame srautą į išorinę svetainę, jei neveikia visi pagrindinio telkinio nariai.

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

Dar daugiau pavyzdžių čia.

Tai viskas apie balansuotoją. Jei turite klausimų, klauskite, aš pasiruošęs atsakyti.

Šaltinis: www.habr.com

Добавить комментарий