L-aħħar darba tkellimna dwar il-kapaċitajiet ta 'NSX Edge f'termini ta' routing statiku u dinamiku, u llum se nittrattaw il-load balancer.
Qabel ma nibdew inwaqqfu, nixtieq infakkarkom fil-qosor dwar it-tipi ewlenin ta 'ibbilanċjar.
Теория
Is-soluzzjonijiet kollha tal-lum għall-ibbilanċjar tat-tagħbija spiss huma maqsuma f'żewġ kategoriji: ibbilanċjar fir-raba' (trasport) u s-seba' (applikazzjoni) livelli tal-mudell
- Balancer L4 ħafna drabi huwa prokura tan-nofs wieqfa bejn il-klijent u sett ta 'backends disponibbli, li jtemm il-konnessjonijiet TCP (jiġifieri, jirrispondi b'mod indipendenti għal SYN), jagħżel backend u jibda sessjoni TCP ġdida fid-direzzjoni tiegħu, b'mod indipendenti jibgħat SYN. Dan it-tip huwa wieħed minn dawk bażiċi; għażliet oħra huma possibbli.
- Balancer L7 jiddistribwixxi t-traffiku fuq backends disponibbli "aktar sofistikati" milli jagħmel l-balancer L4. Jista' jiddeċiedi liema backend tagħżel abbażi, pereżempju, tal-kontenut tal-messaġġ HTTP (URL, cookie, eċċ.).
Irrispettivament mit-tip, il-balancer jista 'jappoġġa l-funzjonijiet li ġejjin:
- L-iskoperta tas-servizz huwa l-proċess tad-determinazzjoni tas-sett ta 'backends disponibbli (Static, DNS, Consul, Etcd, eċċ.).
- Iċċekkjar tal-funzjonalità tal-backends misjuba ("ping" attiv tal-backend bl-użu ta 'talba HTTP, skoperta passiva ta' problemi fil-konnessjonijiet TCP, il-preżenza ta 'diversi kodiċi HTTP 503 fit-tweġibiet, eċċ.).
- L-ibbilanċjar innifsu (round robin, għażla każwali, hash IP sors, URI).
- Terminazzjoni TLS u verifika taċ-ċertifikat.
- Għażliet relatati mas-sigurtà (awtentikazzjoni, prevenzjoni ta 'attakki DoS, limitazzjoni tal-veloċità) u ħafna aktar.
NSX Edge joffri appoġġ għal żewġ modi ta' skjerament ta' load balancer:
Modalità prokura, jew driegħ wieħed. F'dan il-mod, NSX Edge juża l-indirizz IP tiegħu bħala l-indirizz tas-sors meta jibgħat talba lil wieħed mill-backends. Għalhekk, il-balancer simultanjament iwettaq il-funzjonijiet ta 'Sors u Destinazzjoni NAT. Il-backend jara t-traffiku kollu kif mibgħut mill-balancer u jirrispondi direttament għalih. Fi skema bħal din, il-balancer għandu jkun fl-istess segment tan-netwerk mas-servers interni.
Hawn kif sejjer:
1. L-utent jibgħat talba lill-indirizz VIP (indirizz tal-balancer) li huwa kkonfigurat fuq ix-Xifer.
2. Xifer jagħżel wieħed mill-backends u jwettaq id-destinazzjoni NAT, li jissostitwixxi l-indirizz VIP bl-indirizz tal-backend magħżul.
3. Edge jwettaq sors NAT, jissostitwixxi l-indirizz tal-utent li bagħat it-talba ma tiegħu stess.
4. Il-pakkett jintbagħat lill-backend magħżul.
5. Il-backend ma jirrispondix direttament lill-utent, iżda lill-Xifer, peress li l-indirizz oriġinali tal-utent inbidel għall-indirizz tal-balancer.
6. Edge jittrasmetti r-rispons tas-server lill-utent.
Id-dijagramma hija hawn taħt.
Modalità trasparenti, jew inline. F'dan ix-xenarju, il-balancer għandu interfaces fuq in-netwerks interni u esterni. Fl-istess ħin, m'hemm l-ebda aċċess dirett għan-netwerk intern minn dak estern. Il-load balancer integrat jaġixxi bħala gateway NAT għal magni virtwali fuq in-netwerk intern.
Il-mekkaniżmu huwa kif ġej:
1. L-utent jibgħat talba lill-indirizz VIP (indirizz tal-balancer) li huwa kkonfigurat fuq ix-Xifer.
2. Xifer jagħżel wieħed mill-backends u jwettaq id-destinazzjoni NAT, li jissostitwixxi l-indirizz VIP bl-indirizz tal-backend magħżul.
3. Il-pakkett jintbagħat lill-backend magħżul.
4. Il-backend jirċievi talba bl-indirizz oriġinali tal-utent (is-sors NAT ma kienx imwettaq) u jirrispondi direttament għaliha.
5. It-traffiku jerġa' jiġi aċċettat mill-load balancer, peress li fi skema inline normalment jaġixxi bħala l-portal default għar-razzett tas-server.
6. Edge jwettaq NAT tas-sors biex jibgħat it-traffiku lill-utent, billi juża l-VIP tiegħu bħala l-indirizz IP tas-sors.
Id-dijagramma hija hawn taħt.
Prattika
Il-bank tat-test tiegħi għandu 3 servers li jaħdmu Apache, li huwa kkonfigurat biex jaħdem fuq HTTPS. Edge se jwettaq ibbilanċjar round robin tat-talbiet HTTPS, billi jagħti proxy kull talba ġdida lil server ġdid.
Nibdew.
Ġenerazzjoni ta 'ċertifikat SSL li se jintuża minn NSX Edge
Tista' timporta ċertifikat validu ta' CA jew tuża wieħed iffirmat minnu nnifsu. Għal dan it-test ser nuża ffirmat waħdu.
- Fl-interface vCloud Director, mur fis-settings tas-servizzi Edge.
- Mur fit-tab Ċertifikati. Mil-lista ta' azzjonijiet, agħżel li żżid CSR ġdid.
- Imla l-oqsma meħtieġa u kklikkja Żomm.
- Agħżel is-CSR li għadha kif inħoloq u agħżel l-għażla tas-CSR ta’ self-sign.
- Agħżel il-perjodu ta' validità taċ-ċertifikat u kklikkja Żomm
- Iċ-ċertifikat iffirmat minnu nnifsu jidher fil-lista ta 'dawk disponibbli.
Twaqqif tal-Profil tal-Applikazzjoni
Il-profili tal-applikazzjoni jagħtuk kontroll aktar sħiħ fuq it-traffiku tan-netwerk u jagħmlu l-ġestjoni sempliċi u effettiva. Jistgħu jintużaw biex jiddefinixxu l-imġieba għal tipi speċifiċi ta 'traffiku.
- Mur fit-tab tal-Load Balancer u ppermetti l-balancer. L-għażla Aċċelerazzjoni ppermettiet hawnhekk tippermetti lill-balancer juża ibbilanċjar L4 aktar mgħaġġel minflok L7.
- Mur fit-tab tal-profil tal-applikazzjoni biex issettja l-profil tal-applikazzjoni. Ikklikkja +.
- Issettja l-isem tal-profil u agħżel it-tip ta 'traffiku li għalih se jiġi applikat il-profil. Ħa nispjega xi parametri.
Persistenza – jaħżen u jsegwi d-dejta tas-sessjoni, pereżempju: liema server speċifiku fil-pool qed iservi t-talba tal-utent. Dan jiżgura li t-talbiet tal-utenti jiġu mgħoddija lill-istess membru tal-grupp għall-ħajja tas-sessjoni jew sessjonijiet sussegwenti.
Ippermetti SSL passthrough – Meta tintgħażel din l-għażla, NSX Edge jieqaf jittermina SSL. Minflok, it-terminazzjoni sseħħ direttament fuq is-servers li qed jiġu bbilanċjati.
Daħħal X-Forwarded-For HTTP header – jippermettilek tiddetermina l-indirizz IP tas-sors tal-klijent li jikkonnettja mas-server tal-web permezz tal-load balancer.
Ippermetti Pool Side SSL – jippermettilek li tispeċifika li l-grupp magħżul jikkonsisti minn servers HTTPS.
- Peress li se nkun qed nibbilanċja t-traffiku HTTPS, għandi bżonn nippermetti Pool Side SSL u nagħżel iċ-ċertifikat iġġenerat preċedentement fit-tab Ċertifikati tas-Server Virtwali -> tab Ċertifikat tas-Servizz.
- Bl-istess mod għaċ-Ċertifikati tal-Pool -> Ċertifikat tas-Servizz.
Noħolqu ġabra ta 'servers, it-traffiku li għalihom se jkun Pools bilanċjat
- Mur fit-tab Pools. Ikklikkja +.
- Aħna nissettjaw l-isem tal-pool, agħżel l-algoritmu (se nuża round robin) u t-tip ta 'monitoraġġ għall-backend tal-kontroll tas-saħħa.L-għażla Trasparenti tindika jekk l-IP sors inizjali tal-klijenti huwiex viżibbli għal servers interni.
- Jekk l-għażla hija diżattivata, it-traffiku għas-servers interni ġej mill-IP tas-sors tal-balancer.
- Jekk l-għażla hija attivata, is-servers interni jaraw l-IP tas-sors tal-klijenti. F'din il-konfigurazzjoni, NSX Edge għandu jaġixxi bħala l-portal default biex jiżgura li l-pakketti rritornati jgħaddu minn NSX Edge.
NSX jappoġġja l-algoritmi tal-ibbilanċjar li ġejjin:
- IP_HASH – għażla ta' server ibbażata fuq ir-riżultati ta' funzjoni hash għall-IP tas-sors u tad-destinazzjoni ta' kull pakkett.
- LASTCONN – ibbilanċjar tal-konnessjonijiet deħlin, skont in-numru diġà disponibbli fuq server partikolari. Konnessjonijiet ġodda se jkunu diretti lejn is-server bl-inqas konnessjonijiet.
- ROUND_ROBIN – jintbagħtu konnessjonijiet ġodda lil kull server wara xulxin, skont il-piż assenjat lilu.
- URI – il-parti tax-xellug tal-URI (qabel il-marka tal-mistoqsija) hija hashed u diviża bil-piż totali tas-servers fil-pool. Ir-riżultat jindika liema server jirċievi t-talba, u jiżgura li t-talba dejjem tintbagħat lejn l-istess server, sakemm is-servers kollha jibqgħu disponibbli.
- HTTPHEADER – ibbilanċjar ibbażat fuq header HTTP speċifiku, li jista 'jiġi speċifikat bħala parametru. Jekk l-intestatura hija nieqsa jew m'għandha l-ebda valur, jiġi applikat l-algoritmu ROUND_ROBIN.
- URL – Kull talba HTTP GET tfittex il-parametru URL speċifikat bħala argument. Jekk il-parametru jkun segwit minn sinjal ugwali u valur, allura l-valur huwa hashed u diviż bil-piż totali tas-servers li qed jaħdmu. Ir-riżultat jindika liema server jirċievi t-talba. Dan il-proċess jintuża biex iżżomm kont tal-IDs tal-utent fit-talbiet u jiġi żgurat li l-istess id tal-utent dejjem jintbagħat lill-istess server, sakemm is-servers kollha jibqgħu disponibbli.
- Fil-blokk Membri, ikklikkja + biex iżżid servers mal-pool.
Hawnhekk għandek bżonn tispeċifika:- isem tas-server;
- Indirizz IP tas-server;
- il-port li fuqu s-server se jirċievi t-traffiku;
- port għall-kontroll tas-saħħa (Monitor healthcheck);
- piż – billi tuża dan il-parametru tista’ taġġusta l-ammont proporzjonali ta’ traffiku riċevut għal membru speċifiku tal-grupp;
- Max Konnessjonijiet – numru massimu ta’ konnessjonijiet mas-server;
- Konnessjonijiet Min - in-numru minimu ta 'konnessjonijiet li s-server għandu jipproċessa qabel ma t-traffiku jintbagħat lill-membru tal-grupp li jmiss.
Dan huwa kif jidher il-ġabra finali ta 'tliet servers.
Żieda ta' Server Virtwali
- Mur fit-tab Servers Virtwali. Ikklikkja +.
- Aħna nattivaw is-server virtwali billi tuża Enable Virtual Server.
Nagħtuha isem, agħżel il-Profil tal-Applikazzjoni maħluq qabel, Pool u nindika l-indirizz IP li għalih is-Server Virtwali se jirċievi talbiet minn barra. Aħna nispeċifikaw il-protokoll HTTPS u l-port 443.
Parametri mhux obbligatorji hawn:
Limitu ta' Konnessjoni – in-numru massimu ta' konnessjonijiet simultanji li s-server virtwali jista' jipproċessa;
Limitu tar-Rata ta' Konnessjoni (CPS) – in-numru massimu ta' talbiet ġodda deħlin kull sekonda.
Dan itemm il-konfigurazzjoni tal-balancer; tista 'tiċċekkja l-funzjonalità tiegħu. Is-servers għandhom konfigurazzjoni sempliċi li tippermettilek tifhem liema server mill-pool ipproċessa t-talba. Matul is-setup, għażilna l-algoritmu tal-ibbilanċjar Round Robin, u l-parametru tal-Piż għal kull server huwa ugwali għal wieħed, għalhekk kull talba sussegwenti tiġi pproċessata mis-server li jmiss mill-pool.
Aħna ndaħħlu l-indirizz estern tal-balancer fil-browser u naraw:
Wara li tiġġedded il-paġna, it-talba tiġi pproċessata mis-server li ġej:
U għal darb'oħra - biex tiċċekkja t-tielet server mill-pool:
Meta tiċċekkja, tista 'tara li ċ-ċertifikat li jibgħatilna Edge huwa l-istess wieħed li ġġenerajna fil-bidu nett.
Iċċekkja l-istatus tal-balancer mill-console tal-gateway Edge. Biex tagħmel dan, daħħal juru pool loadbalancer tas-servizz.
Konfigurazzjoni tal-Monitor tas-Servizz biex jiċċekkja l-istatus tas-servers fil-pool
Bl-użu tal-Monitor tas-Servizz nistgħu nissorveljaw l-istatus tas-servers fil-pool backend. Jekk ir-rispons għal talba ma jkunx kif mistenni, is-server jista' jinħareġ mill-pool sabiex ma jirċievi ebda talba ġdida.
B'mod awtomatiku, tliet metodi ta' verifika huma kkonfigurati:
- TCP-monitor,
- monitor HTTP,
- Monitoraġġ HTTPS.
Ejja noħolqu waħda ġdida.
- Mur fit-tab tal-Monitoraġġ tas-Servizz, ikklikkja +.
- Agħżel:
- isem għall-metodu l-ġdid;
- l-intervall li fih jintbagħtu t-talbiet,
- timeout stennija għal tweġiba,
- tip ta 'monitoraġġ - talba HTTPS bl-użu tal-metodu GET, kodiċi tal-istatus mistenni - 200(OK) u URL tat-talba.
- Dan itemm is-setup tas-Service Monitor il-ġdid; issa nistgħu nużawh meta noħolqu pool.
Twaqqif ta' Regoli ta' Applikazzjoni
Ir-Regoli tal-Applikazzjoni huma mod kif timmanipula t-traffiku bbażat fuq ċerti triggers. B'din l-għodda nistgħu noħolqu regoli avvanzati ta 'ibbilanċjar tat-tagħbija li jistgħu ma jkunux possibbli permezz ta' profili ta 'Applikazzjoni jew servizzi oħra disponibbli fuq Edge Gateway.
- Biex toħloq regola, mur fit-tab tar-Regoli tal-Applikazzjoni tal-balancer.
- Agħżel isem, skript li se juża r-regola, u kklikkja Żomm.
- Wara li tinħoloq ir-regola, għandna bżonn neditjaw is-Server Virtwali diġà kkonfigurat.
- Fit-tab Avvanzata, żid ir-regola li ħloqna.
Fl-eżempju ta 'hawn fuq ppermettejna l-appoġġ tlsv1.
Ftit eżempji oħra:
Idderieġi t-traffiku lejn pool ieħor.
B'din l-iskrittura nistgħu nidderieġu t-traffiku lejn pool ta' bilanċ ieħor jekk il-pool prinċipali jkun 'l isfel. Biex ir-regola taħdem, pools multipli għandhom jiġu kkonfigurati fuq il-balancer u l-membri kollha tal-pool prinċipali għandhom ikunu fl-istat 'l isfel. Trid tispeċifika l-isem tal-pool, mhux l-ID tagħha.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Idderieġi t-traffiku lejn riżors estern.
Hawnhekk nidderieġu t-traffiku lejn il-websajt esterna jekk il-membri kollha tal-pool prinċipali huma stabbiliti.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Saħansitra aktar eżempji
Dak kollu għalija dwar il-balancer. Jekk għandek xi mistoqsijiet, staqsi, lest nwieġeb.
Sors: www.habr.com