Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Биринчи бөлүк. киришүү
Экинчи бөлүм. Firewall жана NAT эрежелерин конфигурациялоо
Үчүнчү бөлүк. DHCP конфигурацияланууда
Төртүнчү бөлүк. Маршрутизация орнотуу

Акыркы жолу биз NSX Edgeтин статикалык жана динамикалык багыттоо боюнча мүмкүнчүлүктөрү жөнүндө сүйлөшкөнбүз, ал эми бүгүн жүк баланстоочу менен алектенебиз.
Биз орнотууну баштоо алдында, мен кыскача балансташтыруу негизги түрлөрү жөнүндө эскертип кетким келет.

теория

Бүгүнкү күндө пайдалуу жүктү теңдөөнүн бардык чечимдери көбүнчө эки категорияга бөлүнөт: моделдин төртүнчү (транспорттук) жана жетинчи (колдонмо) деңгээлдеринде баланстоо ЖЕ ЭГЕР. OSI модели балансташтыруу ыкмаларын сүрөттөөдө эң жакшы таяныч пункту эмес. Мисалы, L4 баланстоочу да TLS токтотууну колдосо, анда ал L7 баланстоочу болуп калабы? Бирок бул кандай болсо ошондой.

  • Баланс L4 көбүнчө бул кардар менен жеткиликтүү бэкенддердин топтому ортосунда турган орто прокси, ал TCP байланыштарын токтотот (б.а. SYNге өз алдынча жооп берет), бэкэндди тандайт жана SYNди өз алдынча жөнөтүп, өз багытында жаңы TCP сессиясын баштайт. Бул түрү негизги бири болуп саналат, башка параметрлери мүмкүн.
  • Баланс L7 L4 баланстоочусуна караганда, трафикти колдо болгон серверлер боюнча "татаалыраак" бөлүштүрөт. Ал, мисалы, HTTP билдирүүсүнүн мазмунуна (URL, cookie ж.

Түрүнө карабастан, баланстоочу төмөнкү функцияларды колдоого алат:

  • Кызматтын ачылышы – бул жеткиликтүү серверлердин топтомун аныктоо процесси (Статикалык, DNS, Консул, ж.б.).
  • Табылган бэкенддердин функционалдуулугун текшерүү (HTTP сурамынын жардамы менен бэкенддин активдүү “пинги”, TCP байланыштарындагы көйгөйлөрдү пассивдүү аныктоо, жооптордо бир нече 503 HTTP коддорунун болушу ж.б.).
  • Тең салмактуулуктун өзү (тегерек режим, кокус тандоо, булак IP хэш, URI).
  • TLS токтотуу жана сертификатты текшерүү.
  • Коопсуздукка байланыштуу параметрлер (аныктыгын текшерүү, DoS чабуулунун алдын алуу, ылдамдыкты чектөө) жана башкалар.

NSX Edge эки жүк балансын жайгаштыруу режимдерин колдоону сунуш кылат:

Прокси режими же бир колдуу. Бул режимде NSX Edge серверлердин бирине суроо-талапты жөнөтүүдө булак дареги катары өзүнүн IP дарегин колдонот. Ошентип, баланстоочу бир эле учурда Булак жана Destination NAT функцияларын аткарат. Backend бардык трафикти балансизатордон жөнөтүлгөндөй көрөт жана ага түз жооп берет. Мындай схемада баланстоочу ички серверлер менен бир тармак сегментинде болушу керек.

Бул кандай болот:
1. Колдонуучу Edgeде конфигурацияланган VIP дарекке (баланс түзүүчү дарекке) суроо-талап жөнөтөт.
2. Edge бэкенддердин бирин тандайт жана VIP даректи тандалган бэкенддин дареги менен алмаштырып, көздөгөн NATты аткарат.
3. Edge суроо-талапты жөнөткөн колдонуучунун дарегин өзүнүн дарегине алмаштырып, NAT булагы аткарат.
4. Пакет тандалган серверге жөнөтүлөт.
5. Колдонуучунун баштапкы дареги баланстоочунун дарегине өзгөртүлгөндүктөн, бэкэнд түз колдонуучуга эмес, Edgeге жооп берет.
6. Edge сервердин жообун колдонуучуга жөнөтөт.
Диаграмма төмөндө.
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Тунук, же саптык режим. Бул сценарийде баланстоочу ички жана тышкы тармактарда интерфейстерге ээ. Ошол эле учурда тышкы тармактан ички тармакка түз жетүү мүмкүн эмес. Камтылган жүк баланстоочу ички тармактагы виртуалдык машиналар үчүн NAT шлюз катары иштейт.

механизми төмөнкүдөй:
1. Колдонуучу Edgeде конфигурацияланган VIP дарекке (баланс түзүүчү дарекке) суроо-талап жөнөтөт.
2. Edge бэкенддердин бирин тандайт жана VIP даректи тандалган бэкенддин дареги менен алмаштырып, көздөгөн NATты аткарат.
3. Пакет тандалган серверге жөнөтүлөт.
4. Backend колдонуучунун баштапкы дареги менен суроо-талапты кабыл алат (булак NAT аткарылган эмес) жана ага түздөн-түз жооп берет.
5. Трафик кайрадан жүк балансы тарабынан кабыл алынат, анткени ички схемада ал адатта сервер фермасы үчүн демейки шлюз катары иштейт.
6. Edge булак IP дареги катары VIP колдонуп, колдонуучуга трафикти жөнөтүү үчүн булак NAT аткарат.
Диаграмма төмөндө.
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

практика

Менин тесттик отургучта HTTPS аркылуу иштөөгө конфигурацияланган Apache иштеткен 3 сервер бар. Edge ар бир жаңы сурамды жаңы серверге прокси менен өткөрүп, HTTPS суроо-талаптарын тегерек режимде тең салмактуулукту аткарат.
Улантуу.

NSX Edge тарабынан колдонула турган SSL сертификатын түзүү
Жарактуу CA сертификатын импорттой аласыз же өзүнөн өзү кол койгон сертификатты колдоно аласыз. Бул сыноо үчүн мен өз алдынча кол коюуну колдоном.

  1. vCloud Director интерфейсинде Edge кызматтарынын жөндөөлөрүнө өтүңүз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Сертификаттар өтмөгүнө өтүңүз. Аракеттердин тизмесинен жаңы CSR кошууну тандаңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  3. Керектүү талааларды толтуруп, Сактоо баскычын басыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  4. Жаңы түзүлгөн КСЖны тандап, өзүнөн өзү кол коюу CSR опциясын тандаңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  5. Сертификаттын жарактуу мөөнөтүн тандап, Сактоо баскычын басыңыз
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  6. Өзүн-өзү кол коюлган сертификат жеткиликтүүлөрдүн тизмесинде пайда болот.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Колдонмо профилин орнотуу
Колдонмо профилдери сизге тармак трафигин толук башкарууну камсыздап, аны башкарууну жөнөкөй жана натыйжалуу кылат. Алар трафиктин белгилүү бир түрлөрү үчүн жүрүм-турумду аныктоо үчүн колдонулушу мүмкүн.

  1. Load Balancer өтмөгүнө өтүп, баланстоочуну иштетиңиз. Бул жерде Ылдамдатуу иштетилген опция баланстоочуга L4дин ордуна L7 балансын тезирээк колдонууга мүмкүндүк берет.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Колдонмо профилин орнотуу үчүн Колдонмо профилине өтүңүз. + басыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  3. Профилдин атын коюп, профиль колдонула турган трафиктин түрүн тандаңыз. Кээ бир параметрлерди түшүндүрүп берейин.
    тырышчаактык – сеанс маалыматтарын сактайт жана көзөмөлдөйт, мисалы: бассейндеги кайсы сервер колдонуучунун суроо-талабын тейлеп жатат. Бул колдонуучунун суроо-талаптары сессиянын же кийинки сеанстардын өмүр бою бир эле бассейн мүчөсүнө багытталышын камсыздайт.
    SSL аркылуу өтүүнү иштетүү – Бул параметр тандалганда, NSX Edge SSLди токтотууну токтотот. Анын ордуна, токтотуу түздөн-түз тең салмактуу болуп жаткан серверлерде болот.
    X-Forwarded-For HTTP аталышын салыңыз – жүк баланстоочу аркылуу веб-серверге кошулган кардардын IP дарегин аныктоого мүмкүндүк берет.
    Pool Side SSL иштетүү – тандалган бассейн HTTPS серверлеринен турарын көрсөтүүгө мүмкүндүк берет.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  4. Мен HTTPS трафигин тең салмактагандыктан, мен Pool Side SSLди иштетип, Virtual Server Certificates -> Кызмат сертификаты өтмөгүнөн мурда түзүлгөн сертификатты тандашым керек.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  5. Ошо сыяктуу эле, бассейн сертификаттары -> Кызмат сертификаты.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Биз серверлердин бассейнин түзөбүз, ага трафик балансталган бассейндер болот

  1. Бассейндер өтмөгүнө өтүңүз. + басыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Биз бассейндин атын орнотобуз, алгоритмди (мен тегерек робин колдоном) жана ден соолукту текшерүү үчүн мониторингдин түрүн тандайбыз.. Transparent опциясы кардарлардын баштапкы IP булагы ички серверлерге көрүнөөрүн көрсөтөт.
    • Эгер опция өчүрүлгөн болсо, ички серверлер үчүн трафик баланстоочунун IP булагынан келет.
    • Эгер параметр иштетилген болсо, ички серверлер кардарлардын IP булагы көрүшөт. Бул конфигурацияда NSX Edge кайтарылган пакеттердин NSX Edge аркылуу өтүшүн камсыздоо үчүн демейки шлюз катары иштеши керек.

    NSX төмөнкү тең салмактуулук алгоритмдерин колдойт:

    • IP_HASH – ар бир пакеттин булагы жана көздөгөн IP үчүн хэш-функциянын жыйынтыгы боюнча серверди тандоо.
    • LEASTCONN – белгилүү бир серверде бар болгон санга жараша кирүүчү байланыштарды теңдөө. Жаңы туташуулар эң аз туташуусу бар серверге багытталат.
    • ROUND_ROBIN – жаңы туташуулар ар бир серверге өз кезегинде, ага берилген салмакка ылайык жөнөтүлөт.
    • URI – URIнын сол бөлүгү (суроо белгисинин алдында) хэштелген жана бассейндеги серверлердин жалпы салмагына бөлүнөт. Натыйжа суроо-талапты кайсы сервер кабыл алаарын көрсөтүп, бардык серверлер жеткиликтүү болгон шартта сурам дайыма бир серверге багытталышын камсыздайт.
    • HTTPHEADER – параметр катары көрсөтүлүшү мүмкүн болгон белгилүү бир HTTP башынын негизинде баланстоо. Эгер баш аты жок болсо же эч кандай мааниге ээ болбосо, ROUND_ROBIN алгоритми колдонулат.
    • URL – Ар бир HTTP GET суроосу аргумент катары көрсөтүлгөн URL параметрин издейт. Эгер параметрден кийин барабар белги жана маани келсе, анда маани хэштелет жана иштеп жаткан серверлердин жалпы салмагына бөлүнөт. Натыйжа кайсы сервер суроо-талапты кабыл алаарын көрсөтөт. Бул процесс суроо-талаптардагы колдонуучунун идентификаторлоруна көз салуу жана бардык серверлер жеткиликтүү болгон учурда бир эле колдонуучу идентификатору дайыма бир серверге жөнөтүлүшүн камсыздоо үчүн колдонулат.

    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

  3. Мүчөлөр блогунда бассейнге серверлерди кошуу үчүн + чыкылдатыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

    Бул жерде сиз такташыңыз керек:

    • сервердин аты;
    • Server IP дареги;
    • сервер трафикти кабыл ала турган порт;
    • ден соолукту текшерүү үчүн порт (Monitor Healthcheck);
    • салмак – бул параметрди колдонуу менен белгилүү бир бассейн мүчөсү үчүн алынган трафиктин пропорционалдуу көлөмүн тууралай аласыз;
    • Max Connections – серверге туташуулардын максималдуу саны;
    • Минималдуу туташуулар – трафик кийинки бассейн мүчөсүнө жөнөтүлгөнгө чейин сервер иштетиши керек болгон байланыштардын минималдуу саны.

    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

    Үч сервердин акыркы бассейни ушундай көрүнөт.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Virtual Server кошуу

  1. Виртуалдык серверлер өтмөгүнө өтүңүз. + басыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Виртуалдык серверди иштетүү Виртуалдык серверди иштетип жатабыз.
    Биз ага ат беребиз, мурда түзүлгөн Колдонмо профилин, бассейнди тандап, Виртуалдык сервер сырттан суроо-талаптарды кабыл ала турган IP дарегин көрсөтөбүз. Биз HTTPS протоколун жана 443 портун көрсөтөбүз.
    Бул жерде кошумча параметрлер:
    Connection Limit – виртуалдык сервер иштете ала турган бир убактагы туташуулардын максималдуу саны;
    Туташуу ылдамдыгынын чеги (CPS) – секундасына жаңы келген суроо-талаптардын максималдуу саны.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Бул балансташтыргычтын конфигурациясын аяктайт, анын иштешин текшере аласыз. Серверлерде суроо-талапты бассейндин кайсы сервери иштеткенин түшүнүүгө мүмкүндүк берген жөнөкөй конфигурация бар. Орнотуу учурунда биз Round Robin тең салмактуулук алгоритмин тандап алдык жана ар бир сервер үчүн Салмак параметри бирге барабар, андыктан ар бир кийинки сурам бассейнден кийинки сервер тарабынан иштелип чыгат.
Биз браузерге балансизатордун тышкы дарегин киргизип, көрөбүз:
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Баракты жаңырткандан кийин, сурам төмөнкү сервер тарабынан иштелип чыгат:
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Жана дагы - бассейнден үчүнчү серверди текшерүү үчүн:
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Текшерүүдө сиз Edge бизге жөнөткөн сертификат башында биз түзгөн сертификат экенин көрө аласыз.

Edge шлюз консолунан балансизатордун абалы текшерилүүдө. Бул үчүн, кириңиз кызмат loadbalancer бассейн көрсөтүү.
Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Бассейндеги серверлердин абалын текшерүү үчүн Кызмат мониторду конфигурациялоо
Кызмат мониторунун жардамы менен биз серверлердин абалына байкоо жүргүзө алабыз. Эгерде суроо-талапка жооп күтүлгөндөй болбосо, сервер эч кандай жаңы суроо-талаптарды кабыл албашы үчүн бассейнден чыгарылат.
Демейки боюнча, үч текшерүү ыкмасы конфигурацияланган:

  • TCP-монитор,
  • HTTP монитор,
  • HTTPS-монитор.

Келгиле жаңысын түзөлү.

  1. Кызматтын мониторинг өтмөгүнө өтүп, + басыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Тандоо:
    • жаңы ыкманын аталышы;
    • суроо-талаптар жөнөтүлө турган аралыгы,
    • жооп күтүп күтүү,
    • мониторинг түрү - GET ыкмасын колдонуу менен HTTPS суроо, күтүлгөн статус коду - 200 (OK) жана суроо URL.
  3. Бул жаңы Кызмат Мониторунун орнотуусун аяктайт; Эми биз аны бассейнди түзүүдө колдоно алабыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Колдонмо эрежелерин орнотуу

Колдонмо эрежелери - белгилүү триггерлерге негизделген трафикти башкаруунун бир жолу. Бул курал менен биз Edge Gatewayде жеткиликтүү Колдонмо профилдери же башка кызматтар аркылуу мүмкүн болбой турган өркүндөтүлгөн жүктөмдү теңдөө эрежелерин түзө алабыз.

  1. Эреже түзүү үчүн, баланстоочунун Колдонмо эрежелери өтмөгүнө өтүңүз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  2. Эрежени колдоно турган ысымды, скриптти тандап, Сактоо баскычын чыкылдатыңыз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  3. Эреже түзүлгөндөн кийин, биз буга чейин конфигурацияланган Виртуалдык серверди түзөтүшүбүз керек.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо
  4. Өркүндөтүлгөн өтмөктө биз түзгөн эрежени кошуңуз.
    Кичинекейлер үчүн VMware NSX. 5-бөлүк: Жүктөлгөн балансты конфигурациялоо

Жогорудагы мисалда биз tlsv1 колдоосун иштеттик.

Дагы бир нече мисал:

Трафикти башка бассейнге багыттоо.
Бул скрипт менен биз негизги бассейн иштебей калса, трафикти башка баланстоочу бассейнге багыттай алабыз. Эреже иштеши үчүн, балансизатордо бир нече бассейн конфигурацияланышы керек жана негизги бассейндин бардык мүчөлөрү төмөн абалда болушу керек. Сиз анын ID эмес, бассейн атын көрсөтүү керек.

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

Трафикти тышкы ресурска багыттоо.
Бул жерде биз негизги бассейндин бардык мүчөлөрү иштебей калса, трафикти тышкы веб-сайтка багыттайбыз.

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

Андан да көп мисалдар бул жерде.

Мунун баары мен үчүн баланстоочу жөнүндө. Суроолоруңуз болсо бериңиз, мен жооп берүүгө даярмын.

Source: www.habr.com

Комментарий кошуу