Y tro diwethaf i ni siarad am alluoedd NSX Edge o ran llwybro statig a deinamig, a heddiw byddwn yn delio Γ’'r cydbwysedd llwyth.
Cyn i ni ddechrau sefydlu, hoffwn eich atgoffa'n fyr am y prif fathau o gydbwyso.
Π’Π΅ΠΎΡΠΈΡ
Mae holl atebion cydbwyso llwyth tΓ’l heddiw yn cael eu rhannu'n ddau gategori amlaf: cydbwyso ar bedwaredd lefel (trafnidiaeth) a seithfed (cymhwysiad) y model
- Balanswr L4 yn fwyaf aml mae'n ddirprwy canol yn sefyll rhwng y cleient a set o backends sydd ar gael, sy'n terfynu cysylltiadau TCP (hynny yw, yn ymateb yn annibynnol i SYN), yn dewis backend ac yn cychwyn sesiwn TCP newydd yn ei gyfeiriad, gan anfon SYN yn annibynnol. Mae'r math hwn yn un o'r rhai sylfaenol; mae opsiynau eraill yn bosibl.
- Balanswr L7 yn dosbarthu traffig ar draws backendau sydd ar gael yn βfwy soffistigedigβ nag y mae'r balancer L4 yn ei wneud. Gall benderfynu pa Γ΄l-ben i ddewis yn seiliedig ar, er enghraifft, gynnwys y neges HTTP (URL, cwci, ac ati).
Waeth beth fo'r math, gall y cydbwyseddwr gefnogi'r swyddogaethau canlynol:
- Darganfod gwasanaeth yw'r broses o bennu'r set o backends sydd ar gael (Static, DNS, Consul, Etcd, ac ati).
- Gwirio ymarferoldeb yr Γ΄l-olion a ganfuwyd ("ping" gweithredol y pen Γ΄l gan ddefnyddio cais HTTP, canfod problemau'n oddefol mewn cysylltiadau TCP, presenoldeb sawl cod 503 HTTP yn yr ymatebion, ac ati).
- Y cydbwyso ei hun (Robin crwn, dewis ar hap, ffynhonnell IP hash, URI).
- Terfynu TLS a dilysu tystysgrif.
- Opsiynau cysylltiedig Γ’ diogelwch (dilysu, atal ymosodiadau DoS, cyfyngu cyflymder) a llawer mwy.
Mae NSX Edge yn cynnig cefnogaeth ar gyfer dau ddull lleoli cydbwysedd llwyth:
Modd dirprwy, neu un fraich. Yn y modd hwn, mae NSX Edge yn defnyddio ei gyfeiriad IP fel y cyfeiriad ffynhonnell wrth anfon cais i un o'r backends. Felly, mae'r cydbwyseddwr ar yr un pryd yn cyflawni swyddogaethau NAT Ffynhonnell a Chyrchfan. Mae'r backend yn gweld yr holl draffig wedi'i anfon o'r balancer ac yn ymateb yn uniongyrchol iddo. Mewn cynllun o'r fath, rhaid i'r balans fod yn yr un segment rhwydwaith Γ’'r gweinyddwyr mewnol.
Dyma sut mae'n mynd:
1. Mae'r defnyddiwr yn anfon cais i'r cyfeiriad VIP (cyfeiriad cydbwysedd) sydd wedi'i ffurfweddu ar yr Ymyl.
2. Mae Edge yn dewis un o'r backends ac yn perfformio NAT cyrchfan, gan ddisodli'r cyfeiriad VIP gyda chyfeiriad y backend a ddewiswyd.
3. Mae Edge yn perfformio ffynhonnell NAT, gan ddisodli cyfeiriad y defnyddiwr a anfonodd y cais gyda'i un ei hun.
4. Anfonir y pecyn i'r backend dethol.
5. Nid yw'r backend yn ymateb yn uniongyrchol i'r defnyddiwr, ond i'r Edge, gan fod cyfeiriad gwreiddiol y defnyddiwr wedi'i newid i gyfeiriad y balans.
6. Mae Edge yn trosglwyddo ymateb y gweinydd i'r defnyddiwr.
Mae'r diagram isod.
Modd tryloyw, neu fewnol. Yn y senario hwn, mae gan y balancer ryngwynebau ar y rhwydweithiau mewnol ac allanol. Ar yr un pryd, nid oes mynediad uniongyrchol i'r rhwydwaith mewnol o'r un allanol. Mae'r cydbwysydd llwyth adeiledig yn gweithredu fel porth NAT ar gyfer peiriannau rhithwir ar y rhwydwaith mewnol.
Mae'r mecanwaith fel a ganlyn:
1. Mae'r defnyddiwr yn anfon cais i'r cyfeiriad VIP (cyfeiriad cydbwysedd) sydd wedi'i ffurfweddu ar yr Ymyl.
2. Mae Edge yn dewis un o'r backends ac yn perfformio NAT cyrchfan, gan ddisodli'r cyfeiriad VIP gyda chyfeiriad y backend a ddewiswyd.
3. Anfonir y pecyn i'r backend dethol.
4. Mae'r backend yn derbyn cais gyda chyfeiriad gwreiddiol y defnyddiwr (ni pherfformiwyd ffynhonnell NAT) ac yn ymateb yn uniongyrchol iddo.
5. Mae'r traffig yn cael ei dderbyn eto gan y cydbwysedd llwyth, oherwydd mewn cynllun mewnol mae fel arfer yn gweithredu fel porth rhagosodedig ar gyfer fferm y gweinydd.
6. Edge yn perfformio ffynhonnell NAT i anfon traffig i'r defnyddiwr, gan ddefnyddio ei VIP fel y cyfeiriad IP ffynhonnell.
Mae'r diagram isod.
Ymarfer
Mae gan fy mainc brawf 3 gweinydd sy'n rhedeg Apache, sydd wedi'i ffurfweddu i weithio dros HTTPS. Bydd Edge yn cydbwyso robin goch o geisiadau HTTPS, gan ddirprwyo pob cais newydd i weinydd newydd.
Dewch inni ddechrau.
Cynhyrchu tystysgrif SSL a fydd yn cael ei defnyddio gan NSX Edge
Gallwch fewnforio tystysgrif CA ddilys neu ddefnyddio un hunan-lofnodedig. Ar gyfer y prawf hwn byddaf yn defnyddio hunan-lofnod.
- Yn y rhyngwyneb vCloud Director, ewch i'r gosodiadau gwasanaethau Edge.
- Ewch i'r tab Tystysgrifau. O'r rhestr o gamau gweithredu, dewiswch ychwanegu CSR newydd.
- Llenwch y meysydd gofynnol a chliciwch ar Cadw.
- Dewiswch y CSR sydd newydd ei greu a dewiswch yr opsiwn CSR hunan-lofnodi.
- Dewiswch gyfnod dilysrwydd y dystysgrif a chliciwch ar Cadw
- Mae'r dystysgrif hunan-lofnodedig yn ymddangos yn y rhestr o'r rhai sydd ar gael.
Sefydlu Proffil Cais
Mae proffiliau cais yn rhoi rheolaeth fwy cyflawn i chi dros draffig rhwydwaith ac yn ei gwneud yn syml ac yn effeithiol i'w reoli. Gellir eu defnyddio i ddiffinio ymddygiad ar gyfer mathau penodol o draffig.
- Ewch i'r tab Balancer Llwyth a galluogi'r balancer. Mae'r opsiwn galluogi Cyflymiad yma yn caniatΓ‘u i'r balancer ddefnyddio cydbwyso L4 cyflymach yn lle L7.
- Ewch i'r tab proffil Cais i osod proffil y cais. Cliciwch +.
- Gosodwch enw'r proffil a dewiswch y math o draffig y bydd y proffil yn cael ei gymhwyso ar ei gyfer. Gadewch imi egluro rhai paramedrau.
Dyfalbarhad - yn storio ac yn olrhain data sesiwn, er enghraifft: pa weinydd penodol yn y pwll sy'n gwasanaethu cais y defnyddiwr. Mae hyn yn sicrhau bod ceisiadau defnyddwyr yn cael eu cyfeirio at yr un aelod o'r pwll am oes y sesiwn neu sesiynau dilynol.
Galluogi passthrough SSL - Pan ddewisir yr opsiwn hwn, mae NSX Edge yn rhoi'r gorau i derfynu SSL. Yn lle hynny, mae terfyniad yn digwydd yn uniongyrchol ar y gweinyddwyr sy'n cael eu cydbwyso.
Mewnosod X-Forwarded-For HTTP header - yn caniatΓ‘u ichi bennu cyfeiriad IP ffynhonnell y cleient sy'n cysylltu Γ’'r gweinydd gwe trwy'r balans llwyth.
Galluogi SSL Ochr Pwll - yn caniatΓ‘u ichi nodi bod y gronfa a ddewiswyd yn cynnwys gweinyddwyr HTTPS.
- Gan y byddaf yn cydbwyso traffig HTTPS, mae angen i mi alluogi Pool Side SSL a dewis y dystysgrif a gynhyrchwyd yn flaenorol yn y tab Tystysgrifau Gweinydd Rhithwir -> Tystysgrif Gwasanaeth.
- Yn yr un modd ar gyfer Tystysgrifau Pwll -> Tystysgrif Gwasanaeth.
Rydym yn creu cronfa o weinyddion, y traffig i a fydd yn Pyllau cytbwys
- Ewch i'r tab Pyllau. Cliciwch +.
- Rydym yn gosod enw'r pwll, dewiswch yr algorithm (byddaf yn defnyddio robin crwn) a'r math o fonitro ar gyfer backend y gwiriad iechyd.Mae'r opsiwn Tryloyw yn nodi a yw IPs ffynhonnell gychwynnol cleientiaid yn weladwy i weinyddion mewnol.
- Os yw'r opsiwn yn anabl, daw traffig ar gyfer gweinyddwyr mewnol o ffynhonnell IP y balancer.
- Os yw'r opsiwn wedi'i alluogi, mae gweinyddwyr mewnol yn gweld ffynhonnell IP cleientiaid. Yn y cyfluniad hwn, rhaid i NSX Edge weithredu fel y porth rhagosodedig i sicrhau bod pecynnau a ddychwelir yn mynd trwy NSX Edge.
Mae NSX yn cefnogi'r algorithmau cydbwyso canlynol:
- IP_HASH β dewis gweinydd yn seiliedig ar ganlyniadau swyddogaeth hash ar gyfer IP ffynhonnell a chyrchfan pob pecyn.
- LEASTCONN β cydbwyso cysylltiadau sy'n dod i mewn, yn dibynnu ar y nifer sydd eisoes ar gael ar weinydd penodol. Bydd cysylltiadau newydd yn cael eu cyfeirio at y gweinydd gyda'r nifer lleiaf o gysylltiadau.
- ROUND_ROBIN - anfonir cysylltiadau newydd at bob gweinydd yn ei dro, yn unol Γ’'r pwysau a neilltuwyd iddo.
- URI β mae rhan chwith yr URI (cyn y marc cwestiwn) yn cael ei stwnsio a'i rannu Γ’ chyfanswm pwysau'r gweinyddion yn y gronfa. Mae'r canlyniad yn nodi pa weinydd sy'n derbyn y cais, gan sicrhau bod y cais bob amser yn cael ei gyfeirio at yr un gweinydd, cyhyd Γ’ bod yr holl weinyddion yn parhau i fod ar gael.
- HTTPHEADER β cydbwyso yn seiliedig ar bennawd HTTP penodol, y gellir ei nodi fel paramedr. Os yw'r pennyn ar goll neu os nad oes ganddo unrhyw werth, gweithredir yr algorithm ROUND_ROBIN.
- URL - Mae pob cais HTTP GET yn chwilio am y paramedr URL a nodir fel dadl. Os dilynir y paramedr gan arwydd cyfartal a gwerth, yna caiff y gwerth ei stwnsio a'i rannu Γ’ chyfanswm pwysau'r gweinyddwyr sy'n rhedeg. Mae'r canlyniad yn nodi pa weinydd sy'n derbyn y cais. Defnyddir y broses hon i gadw cofnod o IDau defnyddwyr mewn ceisiadau a sicrhau bod yr un ID defnyddiwr bob amser yn cael ei anfon at yr un gweinydd, cyhyd Γ’ bod yr holl weinyddion yn parhau i fod ar gael.
- Yn y bloc Aelodau, cliciwch + i ychwanegu gweinyddwyr i'r pwll.
Yma mae angen i chi nodi:- enw gweinydd;
- Cyfeiriad IP gweinydd;
- y porthladd y bydd y gweinydd yn derbyn traffig arno;
- porthladd ar gyfer gwiriad iechyd (Monitor healthcheck);
- pwysau - gan ddefnyddio'r paramedr hwn gallwch addasu swm cymesurol y traffig a dderbynnir ar gyfer aelod penodol o'r pwll;
- Cysylltiadau Max - uchafswm nifer y cysylltiadau Γ’'r gweinydd;
- Cysylltiadau Isaf - y nifer lleiaf o gysylltiadau y mae'n rhaid i'r gweinydd eu prosesu cyn i draffig gael ei anfon ymlaen at aelod nesaf y pwll.
Dyma sut olwg sydd ar y gronfa olaf o dri gweinydd.
Ychwanegu Gweinydd Rhithwir
- Ewch i'r tab Gweinyddwyr Rhithwir. Cliciwch +.
- Rydym yn actifadu'r gweinydd rhithwir gan ddefnyddio Galluogi Gweinyddwr Rhithwir.
Rydyn ni'n rhoi enw iddo, yn dewis y Proffil Cymhwysiad a grΓ«wyd yn flaenorol, y Gronfa ac yn nodi'r cyfeiriad IP y bydd y Gweinydd Rhithwir yn derbyn ceisiadau iddo o'r tu allan. Rydym yn nodi'r protocol HTTPS a phorthladd 443.
Paramedrau dewisol yma:
Terfyn Cysylltiad β y nifer uchaf o gysylltiadau cydamserol y gall y gweinydd rhithwir eu prosesu;
Terfyn Cyfradd Cysylltiad (CPS) β uchafswm nifer y ceisiadau newydd yr eiliad.
Mae hyn yn cwblhau cyfluniad y balancer; gallwch wirio ei ymarferoldeb. Mae gan y gweinyddwyr gyfluniad syml sy'n eich galluogi i ddeall pa weinydd o'r pwll a brosesodd y cais. Yn ystod y gosodiad, fe wnaethom ddewis algorithm cydbwyso Rownd Robin, ac mae'r paramedr Pwysau ar gyfer pob gweinydd yn hafal i un, felly bydd pob cais dilynol yn cael ei brosesu gan y gweinydd nesaf o'r pwll.
Rydyn ni'n nodi cyfeiriad allanol y balans yn y porwr ac yn gweld:
Ar Γ΄l adnewyddu'r dudalen, bydd y cais yn cael ei brosesu gan y gweinydd canlynol:
Ac eto - i wirio'r trydydd gweinydd o'r pwll:
Wrth wirio, gallwch weld bod y dystysgrif y mae Edge yn ei hanfon atom yr un peth ag y gwnaethom ei chynhyrchu ar y cychwyn cyntaf.
Gwirio statws balans o gonsol porth Edge. I wneud hyn, ewch i mewn dangos gwasanaeth loadbalancer pwll.
Ffurfweddu Monitor Gwasanaeth i wirio statws gweinyddwyr yn y pwll
Gan ddefnyddio Monitor Gwasanaeth gallwn fonitro statws gweinyddwyr yn y gronfa backend. Os nad yw'r ymateb i gais yn unol Γ’'r disgwyl, gellir tynnu'r gweinydd allan o'r pwll fel nad yw'n derbyn unrhyw geisiadau newydd.
Yn ddiofyn, mae tri dull dilysu wedi'u ffurfweddu:
- monitro TCP,
- monitor HTTP,
- HTTPS-monitro.
Gadewch i ni greu un newydd.
- Ewch i'r tab Monitro Gwasanaeth, cliciwch +.
- Dewiswch:
- enw ar y dull newydd;
- yr egwyl yr anfonir ceisiadau,
- terfyn amser yn aros am ymateb,
- math o fonitro - cais HTTPS gan ddefnyddio'r dull GET, cod statws disgwyliedig - 200 (OK) a chais URL.
- Mae hyn yn cwblhau gosod y Monitor Gwasanaeth newydd; nawr gallwn ei ddefnyddio wrth greu pwll.
Sefydlu Rheolau Cais
Mae Rheolau Cymhwyso yn ffordd o drin traffig yn seiliedig ar sbardunau penodol. Gyda'r offeryn hwn gallwn greu rheolau cydbwyso llwyth uwch na fydd efallai'n bosibl trwy broffiliau Cais neu wasanaethau eraill sydd ar gael ar y Porth Edge.
- I greu rheol, ewch i'r tab Rheolau Cymhwyso'r balansiwr.
- Dewiswch enw, sgript a fydd yn defnyddio'r rheol, a chliciwch ar Cadw.
- Ar Γ΄l i'r rheol gael ei chreu, mae angen i ni olygu'r Gweinydd Rhithwir sydd eisoes wedi'i ffurfweddu.
- Yn y tab Uwch, ychwanegwch y rheol a grΓ«wyd gennym.
Yn yr enghraifft uchod fe wnaethom alluogi cefnogaeth tlsv1.
Cwpl mwy o enghreifftiau:
Ailgyfeirio traffig i bwll arall.
Gyda'r sgript hon gallwn ailgyfeirio traffig i bwll cydbwyso arall os yw'r prif bwll i lawr. Er mwyn i'r rheol weithio, rhaid ffurfweddu pyllau lluosog ar y cydbwyseddwr a rhaid i bob aelod o'r prif bwll fod yn y cyflwr i lawr. Mae angen i chi nodi enw'r pwll, nid ei ID.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Ailgyfeirio traffig i adnodd allanol.
Yma rydym yn ailgyfeirio traffig i'r wefan allanol os yw holl aelodau'r prif bwll i lawr.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Hyd yn oed mwy o enghreifftiau
Dyna'r cyfan i mi am y balancer. Os oes gennych unrhyw gwestiynau, gofynnwch, rwy'n barod i ateb.
Ffynhonnell: hab.com