VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Unang bahin. Pasiuna
Ikaduhang bahin. Pag-set up sa mga lagda sa Firewall ug NAT
Ikatulo nga bahin. Pag-setup sa DHCP
Ikaupat nga bahin. Pag-set up sa ruta

Sa miaging higayon naghisgot kami bahin sa mga kapabilidad sa NSX Edge sa mga termino sa static ug dinamikong ruta, ug karon atong atubangon ang load balancer.
Sa dili pa kita magsugod sa pag-set up, gusto ko nga pahinumdoman ka sa mubo mahitungod sa mga nag-unang matang sa pagbalanse.

Teorya

Ang tanan nga mga solusyon sa pagbalanse sa payload karon kasagarang gibahin sa duha ka mga kategorya: pagbalanse sa ikaupat (transportasyon) ug ikapito (aplikasyon) nga lebel sa modelo O KUNG KON. Ang modelo sa OSI dili mao ang pinakamaayo nga punto sa pakisayran kung naghulagway sa mga pamaagi sa pagbalanse. Pananglitan, kung ang usa ka L4 balancer nagsuporta usab sa TLS nga pagtapos, mahimo ba kini nga usa ka L7 balancer? Apan kung unsa kini.

  • Balanse L4 kasagaran kini usa ka tunga-tunga nga proxy nga nagbarog tali sa kliyente ug usa ka set sa magamit nga mga backend, nga nagtapos sa mga koneksyon sa TCP (nga mao, independente nga pagtubag sa SYN), nagpili sa usa ka backend ug nagsugod sa usa ka bag-ong sesyon sa TCP sa direksyon niini, nga independente nga nagpadala sa SYN. Kini nga tipo usa sa mga sukaranan; posible ang ubang mga kapilian.
  • Balanse L7 nag-apod-apod sa trapiko sa mga magamit nga backend nga "mas sopistikado" kaysa sa L4 balancer. Makahukom kini kung asa nga backend ang pilion base sa, pananglitan, sa sulod sa HTTP nga mensahe (URL, cookie, ug uban pa).

Bisan unsa pa ang tipo, ang balancer makasuporta sa mosunod nga mga gimbuhaton:

  • Ang pagdiskubre sa serbisyo mao ang proseso sa pagtino sa set sa magamit nga mga backend (Static, DNS, Consul, Etcd, ug uban pa).
  • Pagsusi sa pag-andar sa nakit-an nga mga backend (aktibo nga "ping" sa backend gamit ang usa ka hangyo sa HTTP, passive detection sa mga problema sa mga koneksyon sa TCP, ang presensya sa daghang 503 HTTP code sa mga tubag, ug uban pa).
  • Ang pagbalanse mismo (round robin, random selection, source IP hash, URI).
  • Pagtapos sa TLS ug pag-verify sa sertipiko.
  • Mga kapilian nga may kalabotan sa seguridad (panghimatuud, pagpugong sa pag-atake sa DoS, paglimite sa tulin) ug daghan pa.

Ang NSX Edge nagtanyag og suporta alang sa duha ka load balancer deployment modes:

Proxy mode, o usa ka bukton. Niini nga mode, ang NSX Edge naggamit sa IP address niini isip tinubdan nga adres sa pagpadala sa usa ka hangyo sa usa sa mga backend. Busa, ang balancer dungan nga naghimo sa mga gimbuhaton sa Source ug Destination NAT. Nakita sa backend ang tanan nga trapiko ingon nga gipadala gikan sa balancer ug direkta nga mitubag niini. Sa ingon nga laraw, ang balanse kinahanglan naa sa parehas nga bahin sa network sa mga internal nga server.

Ania kung giunsa kini:
1. Ang user nagpadala ug hangyo sa VIP address (balancer address) nga gi-configure sa Edge.
2. Gipili sa Edge ang usa sa mga backend ug gihimo ang destinasyon nga NAT, gipulihan ang VIP address sa adres sa gipili nga backend.
3. Gibuhat sa Edge ang gigikanan nga NAT, gipulihan ang adres sa tiggamit nga nagpadala sa hangyo nga adunay kaugalingon.
4. Ang package gipadala ngadto sa pinili nga backend.
5. Ang backend dili direktang motubag sa user, apan sa Edge, tungod kay ang orihinal nga adres sa user giusab ngadto sa address sa balancer.
6. Si Edge nagpadala sa tubag sa server ngadto sa user.
Ang diagram anaa sa ubos.
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Transparent, o inline, mode. Niini nga senaryo, ang balancer adunay mga interface sa internal ug external nga mga network. Sa parehas nga oras, wala’y direktang pag-access sa internal nga network gikan sa gawas. Ang built-in nga load balancer naglihok isip NAT gateway alang sa mga virtual machine sa internal nga network.

Ang mekanismo mao ang mosunod:
1. Ang user nagpadala ug hangyo sa VIP address (balancer address) nga gi-configure sa Edge.
2. Gipili sa Edge ang usa sa mga backend ug gihimo ang destinasyon nga NAT, gipulihan ang VIP address sa adres sa gipili nga backend.
3. Ang package gipadala ngadto sa pinili nga backend.
4. Ang backend nakadawat og hangyo uban sa orihinal nga adres sa user (ang tinubdan NAT wala gihimo) ug direktang mitubag niini.
5. Ang trapiko gidawat pag-usab sa load balancer, tungod kay sa usa ka inline nga pamaagi kasagaran kini naglihok isip default gateway alang sa server farm.
6. Gibuhat sa Edge ang source NAT aron ipadala ang trapiko sa user, gamit ang VIP niini isip source IP address.
Ang diagram anaa sa ubos.
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Pagpraktis

Ang akong test bench adunay 3 ka mga server nga nagpadagan sa Apache, nga gi-configure aron magtrabaho sa HTTPS. Ang Edge maghimo sa round robin nga pagbalanse sa mga hangyo sa HTTPS, pag-proxy sa matag bag-ong hangyo sa usa ka bag-ong server.
Atong sugdan

Paghimo og SSL certificate nga gamiton sa NSX Edge
Mahimo nimong i-import ang usa ka balido nga sertipiko sa CA o mogamit usa nga gipirmahan sa kaugalingon. Alang niini nga pagsulay akong gamiton ang self-signed.

  1. Sa interface sa vCloud Director, adto sa mga setting sa serbisyo sa Edge.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Adto sa tab nga Mga Sertipiko. Gikan sa lista sa mga aksyon, pilia ang pagdugang og bag-ong CSR.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  3. Pun-a ang gikinahanglan nga mga natad ug i-klik ang Padayon.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  4. Pilia ang bag-ong nahimo nga CSR ug pilia ang kapilian sa pagpirma sa kaugalingon nga CSR.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  5. Pilia ang validity period sa certificate ug i-klik ang Keep
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  6. Ang gipirmahan sa kaugalingon nga sertipiko makita sa lista sa mga magamit.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Pag-set up sa Application Profile
Ang mga profile sa aplikasyon naghatag kanimo og mas kompleto nga kontrol sa trapiko sa network ug gihimong simple ug epektibo ang pagdumala niini. Mahimo kini gamiton aron mahibal-an ang pamatasan alang sa piho nga mga tipo sa trapiko.

  1. Adto sa Load Balancer tab ug palihoka ang balancer. Ang Acceleration enabled option dinhi nagtugot sa balancer sa paggamit sa mas paspas nga pagbalanse sa L4 imbes sa L7.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Adto sa tab nga Profile sa aplikasyon aron itakda ang profile sa aplikasyon. I-klik ang +.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  3. Itakda ang ngalan sa profile ug pilia ang tipo sa trapiko diin ang profile magamit. Tugoti ako sa pagpasabut sa pipila ka mga parameter.
    Paglahutay - nagtipig ug nagsubay sa datos sa sesyon, pananglitan: kung unsang piho nga server sa pool ang nagserbisyo sa hangyo sa gumagamit. Gipaneguro niini nga ang mga hangyo sa gumagamit madala sa parehas nga miyembro sa pool sa tibuok kinabuhi sa sesyon o sa sunod nga mga sesyon.
    I-enable ang SSL passthrough - Kung gipili kini nga kapilian, ang NSX Edge mihunong sa pagtapos sa SSL. Hinuon, ang pagtapos mahitabo direkta sa mga server nga gibalanse.
    Isulod ang X-Forwarded-For HTTP header – nagtugot kanimo sa pagtino sa tinubdan IP address sa kliyente nga nagkonektar sa web server pinaagi sa load balancer.
    I-enable ang Pool Side SSL – nagtugot kanimo sa pagtino nga ang pinili nga pool naglangkob sa HTTPS servers.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  4. Tungod kay akong ibalanse ang trapiko sa HTTPS, kinahanglan nako nga i-enable ang Pool Side SSL ug pilion ang kaniadto nga nahimo nga sertipiko sa Virtual Server Certificates -> Service Certificate tab.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  5. Susama alang sa Pool Certificates -> Sertipiko sa Serbisyo.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Naghimo kami usa ka pool sa mga server, ang trapiko diin mahimong balanse nga Pool

  1. Adto sa tab nga Pool. I-klik ang +.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Gibutang namon ang ngalan sa pool, pilia ang algorithm (gamiton nako ang round robin) ug ang tipo sa pagmonitor alang sa backend sa pagsusi sa kahimsog.Ang Transparent nga kapilian nagpakita kung ang mga inisyal nga gigikanan nga IP sa mga kliyente makita sa mga internal nga server.
    • Kung ang kapilian gibabagan, ang trapiko alang sa mga internal nga server gikan sa gigikanan nga IP sa balanse.
    • Kung mahimo ang kapilian, makita sa mga internal nga server ang gigikanan nga IP sa mga kliyente. Niini nga configuration, ang NSX Edge kinahanglang molihok isip default gateway aron maseguro nga ang mga gibalik nga packet moagi sa NSX Edge.

    Gisuportahan sa NSX ang mosunod nga mga algorithm sa pagbalanse:

    • IP_HASH - Pagpili sa server base sa mga resulta sa usa ka hash function alang sa gigikanan ug destinasyon nga IP sa matag pakete.
    • LEASTCONN – pagbalanse sa umaabot nga mga koneksyon, depende sa gidaghanon nga anaa na sa usa ka partikular nga server. Ang mga bag-ong koneksyon idirekta sa server nga adunay labing gamay nga koneksyon.
    • ROUND_ROBIN – bag-ong mga koneksyon gipadala ngadto sa matag server sa baylo, sumala sa gibug-aton nga gihatag niini.
    • URI – ang wala nga bahin sa URI (sa wala pa ang marka sa pangutana) gi-hash ug gibahin sa kinatibuk-ang gibug-aton sa mga server sa pool. Gipakita sa resulta kung unsang server ang makadawat sa hangyo, pagsiguro nga ang hangyo kanunay nga gipunting sa parehas nga server, basta ang tanan nga mga server magpabilin nga magamit.
    • HTTPHEADER – pagbalanse base sa usa ka piho nga HTTP header, nga mahimong espesipiko ingon nga usa ka parameter. Kung ang header nawala o wala’y bisan unsang kantidad, ang ROUND_ROBIN algorithm gigamit.
    • URL - Ang matag hangyo sa HTTP GET nangita alang sa parameter sa URL nga gipiho ingon usa ka argumento. Kung ang parameter gisundan sa parehas nga timaan ug usa ka kantidad, nan ang kantidad gi-hash ug gibahin sa kinatibuk-ang gibug-aton sa mga nagdagan nga mga server. Ang resulta nagpakita kung unsang server ang makadawat sa hangyo. Gigamit kini nga proseso aron masubay ang mga user ID sa mga hangyo ug masiguro nga ang parehas nga user id kanunay ipadala sa parehas nga server, basta ang tanan nga mga server magpabilin nga magamit.

    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

  3. Sa block sa mga Miyembro, i-klik ang + aron idugang ang mga server sa pool.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

    Dinhi kinahanglan nimo ipiho:

    • ngalan sa server;
    • IP address sa server;
    • ang pantalan diin ang server makadawat sa trapiko;
    • pantalan para sa health check (Monitor healthcheck);
    • gibug-aton - gamit kini nga parameter mahimo nimong i-adjust ang proporsyonal nga kantidad sa trapiko nga nadawat alang sa usa ka piho nga miyembro sa pool;
    • Max Connections – maximum nga gidaghanon sa mga koneksyon sa server;
    • Min Connections - ang minimum nga gidaghanon sa mga koneksyon nga kinahanglan iproseso sa server sa dili pa ipadala ang trapiko sa sunod nga miyembro sa pool.

    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

    Mao kini ang hitsura sa katapusang pool sa tulo ka mga server.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Pagdugang Virtual Server

  1. Lakaw ngadto sa Virtual Servers tab. I-klik ang +.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Among gi-activate ang virtual server gamit ang Enable Virtual Server.
    Gihatagan namon kini og usa ka ngalan, pilia ang nahimo kaniadto nga Application Profile, Pool ug ipahibalo ang IP address diin ang Virtual Server makadawat mga hangyo gikan sa gawas. Gitakda namo ang HTTPS protocol ug port 443.
    Opsyonal nga mga parameter dinhi:
    Limitado sa Koneksyon – ang kinatas-ang gidaghanon sa dungan nga mga koneksyon nga maproseso sa virtual server;
    Limitado sa Rate sa Koneksyon (CPS) – ang maximum nga gidaghanon sa mga bag-ong umaabot nga mga hangyo matag segundo.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Nakompleto niini ang pag-configure sa balancer; mahimo nimong susihon ang pagpaandar niini. Ang mga server adunay usa ka yano nga pagsumpo nga nagtugot kanimo nga masabtan kung unsang server gikan sa pool ang nagproseso sa hangyo. Atol sa pag-setup, gipili namo ang Round Robin nga balanse nga algorithm, ug ang Weight parameter alang sa matag server katumbas sa usa, mao nga ang matag sunod nga hangyo iproseso sa sunod nga server gikan sa pool.
Gisulod namo ang eksternal nga adres sa balancer sa browser ug tan-awa:
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Human sa pag-refresh sa panid, ang hangyo iproseso sa mosunod nga server:
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Ug usab - aron masusi ang ikatulo nga server gikan sa pool:
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Kung nagsusi, imong makita nga ang sertipiko nga gipadala kanamo ni Edge mao ra ang among nahimo sa sinugdanan.

Pagsusi sa kahimtang sa balanse gikan sa Edge gateway console. Aron mahimo kini, pagsulod ipakita ang serbisyo sa loadbalancer pool.
VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Pag-configure sa Service Monitor aron masusi ang kahimtang sa mga server sa pool
Gamit ang Service Monitor mamonitor nato ang status sa mga server sa backend pool. Kung ang tubag sa usa ka hangyo dili sama sa gipaabut, ang server mahimong makuha gikan sa pool aron dili kini makadawat bisan unsang bag-ong mga hangyo.
Sa kasagaran, tulo ka pamaagi sa pag-verify ang gi-configure:

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

Magbuhat ta ug bag-o.

  1. Adto sa Service Monitoring tab, i-klik ang +.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Pilia:
    • ngalan alang sa bag-ong pamaagi;
    • ang agwat diin ang mga hangyo ipadala,
    • timeout naghulat sa tubag,
    • matang sa pag-monitor – HTTPS hangyo gamit ang GET nga pamaagi, gipaabot nga status code – 200(OK) ug request URL.
  3. Nakompleto niini ang pag-setup sa bag-ong Service Monitor; karon magamit na nato kini sa paghimo og pool.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Pag-set up sa mga Lagda sa Aplikasyon

Ang Mga Lagda sa Aplikasyon usa ka paagi sa pagmaniobra sa trapiko base sa pipila nga mga hinungdan. Uban niini nga himan makahimo kita og mga advanced load balancing nga mga lagda nga dili mahimo pinaagi sa mga profile sa Application o uban pang mga serbisyo nga anaa sa Edge Gateway.

  1. Aron makahimo og usa ka lagda, adto sa Application Rules tab sa balancer.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  2. Pagpili og ngalan, script nga mogamit sa lagda, ug i-klik ang Keep.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  3. Human mabuhat ang lagda, kinahanglan natong usbon ang na-configure na nga Virtual Server.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer
  4. Sa tab nga Advanced, idugang ang lagda nga among gibuhat.
    VMware NSX para sa mga gagmay. Bahin 5: Pag-configure sa usa ka Load Balancer

Sa panig-ingnan sa ibabaw gipalihok namo ang suporta sa tlsv1.

Pipila pa nga mga pananglitan:

I-redirect ang trapiko sa laing pool.
Uban niini nga script mahimo namong i-redirect ang trapiko sa lain nga pagbalanse nga pool kung ang main pool nahulog. Aron molihok ang lagda, daghang mga pool ang kinahanglan nga ma-configure sa balancer ug ang tanan nga mga miyembro sa main pool kinahanglan nga naa sa ubos nga estado. Kinahanglan nimong ipiho ang ngalan sa pool, dili ang ID niini.

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

I-redirect ang trapiko sa usa ka eksternal nga kapanguhaan.
Dinhi among gi-redirect ang trapiko sa gawas nga website kung ang tanan nga mga miyembro sa main pool wala.

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

Dugang pa nga mga pananglitan dinhi.

Kana ang tanan alang kanako bahin sa balanse. Kung naa kay pangutana, pangutana, andam ko mutubag.

Source: www.habr.com

Idugang sa usa ka comment