Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Бірінші бөлім. кіріспе
Екінші бөлім. Брандмауэр және NAT ережелерін конфигурациялау
Үшінші бөлім. DHCP конфигурациялануда
Төртінші бөлім. Маршрутты орнату

Өткен жолы біз статикалық және динамикалық бағыттау тұрғысынан NSX Edge мүмкіндіктері туралы айттық, ал бүгін біз жүктемені теңестірушімен айналысамыз.
Орнатуды бастамас бұрын, теңгерімдеудің негізгі түрлері туралы қысқаша еске салғым келеді.

Теория

Бүгінгі барлық пайдалы жүктемені теңестіру шешімдері көбінесе екі санатқа бөлінеді: модельдің төртінші (көлік) және жетінші (қолданбалы) деңгейлеріндегі теңгерімдеу. НЕМЕСЕ. OSI моделі теңдестіру әдістерін сипаттау кезінде ең жақсы анықтамалық нүкте емес. Мысалы, L4 теңгерімшісі TLS тоқтатуды қолдаса, ол L7 теңгерімшісі бола ма? Бірақ ол солай.

  • Теңгерім L4 Көбінесе бұл TCP қосылымдарын тоқтататын (яғни SYN-ге дербес жауап беретін), серверді таңдайтын және SYN-ді дербес жібере отырып, өз бағытында жаңа TCP сеансын бастайтын клиент пен қол жетімді серверлер жиынтығының арасында орналасқан ортаңғы прокси. Бұл түр негізгілердің бірі болып табылады, басқа нұсқалар мүмкін.
  • Теңгерім L7 трафикті қол жетімді серверлер бойынша L4 балансизаторына қарағанда «күрделі» таратады. Ол, мысалы, HTTP хабарының мазмұнына (URL, cookie, т.б.) негізделген қай серверді таңдау керектігін шеше алады.

Түріне қарамастан, балансизатор келесі функцияларды қолдай алады:

  • Қызметті табу – қол жетімді серверлер жиынын анықтау процесі (Static, DNS, Consul, Etcd және т.б.).
  • Анықталған серверлердің функционалдығын тексеру (HTTP сұрауы арқылы сервердің белсенді «пингі», TCP қосылымдарындағы ақаулықтарды пассивті анықтау, жауаптарда бірнеше 503 HTTP кодтарының болуы және т.б.).
  • Теңдестірудің өзі (дөңгелек режим, кездейсоқ таңдау, бастапқы IP хэші, URI).
  • TLS тоқтату және сертификатты тексеру.
  • Қауіпсіздікке қатысты опциялар (аутентификация, DoS шабуылының алдын алу, жылдамдықты шектеу) және т.б.

NSX Edge екі жүктеме балансын орналастыру режиміне қолдау көрсетеді:

Прокси режимі немесе бір қол. Бұл режимде NSX Edge серверлердің біріне сұрау жіберу кезінде бастапқы мекенжай ретінде өзінің IP мекенжайын пайдаланады. Осылайша, баланстауыш бір уақытта Source және 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. Сервер пайдаланушының бастапқы мекенжайы бар сұрауды алады (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 таңдаңыз және өзін-өзі қол қою CSR опциясын таңдаңыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  5. Сертификаттың жарамдылық мерзімін таңдап, «Сақтау» түймесін басыңыз
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  6. Өздігінен қол қойылған сертификат қолжетімділер тізімінде пайда болады.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Қолданба профилін орнату
Қолданба профильдері желі трафигін толық бақылауға мүмкіндік береді және оны басқаруды қарапайым және тиімді етеді. Оларды трафиктің белгілі бір түрлері үшін мінез-құлықты анықтау үшін пайдалануға болады.

  1. «Жүктеме теңестіруші» қойындысына өтіп, теңгерімді қосыңыз. Мұндағы Acceleration қосулы опция теңгерушіге 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 мүмкіндігін қосып, Виртуалды сервер сертификаттары -> Қызмет сертификаты қойындысында бұрын жасалған сертификатты таңдауым керек.
    Кішкентайларға арналған 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-бөлім: Жүктеме балансын орнату

    Мұнда сіз мыналарды көрсетуіңіз керек:

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

    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

    Үш сервердің соңғы пулы осылай көрінеді.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Виртуалды серверді қосу

  1. Виртуалды серверлер қойындысына өтіңіз. + түймесін басыңыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  2. Виртуалды серверді қосу Виртуалды серверді пайдалану арқылы белсендіреміз.
    Біз оған ат береміз, бұрын жасалған қолданба профилін, пулды таңдаймыз және Виртуалды сервер сырттан сұрауларды қабылдайтын IP мекенжайын көрсетеміз. Біз HTTPS протоколын және 443 портын көрсетеміз.
    Мұнда қосымша параметрлер:
    Қосылу шегі – виртуалды сервер өңдей алатын бір уақыттағы қосылымдардың максималды саны;
    Байланыс жылдамдығының шегі (CPS) – секундына жаңа кіріс сұрауларының максималды саны.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

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

Бетті жаңартқаннан кейін сұрау келесі сервермен өңделеді:
Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Тағы да - пулдан үшінші серверді тексеру үшін:
Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Тексеру кезінде Edge бізге жіберетін сертификаттың біз ең басында жасаған куәлік екенін көре аласыз.

Edge шлюз консолінен баланстауыш күйін тексеру. Мұны істеу үшін енгізіңіз жүк теңестіруші пулын көрсету.
Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Пулдағы серверлердің күйін тексеру үшін Қызмет мониторын теңшеу
Сервис мониторын пайдалану арқылы біз серверлік пулдағы серверлердің күйін бақылай аламыз. Егер сұрауға жауап күтілгендей болмаса, сервер жаңа сұрауларды қабылдамауы үшін пулдан шығарылуы мүмкін.
Әдепкі бойынша үш тексеру әдісі конфигурацияланады:

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

Жаңасын жасайық.

  1. Қызметті бақылау қойындысына өтіп, + түймесін басыңыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  2. Таңдау:
    • жаңа әдістің атауы;
    • сұраулар жіберілетін аралық,
    • жауап күту күту уақыты,
    • бақылау түрі – GET әдісін пайдаланатын HTTPS сұрауы, күтілетін күй коды – 200(OK) және сұрау URL мекенжайы.
  3. Бұл жаңа қызмет мониторын орнатуды аяқтайды; енді біз оны пул жасаған кезде пайдалана аламыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Қолданба ережелерін орнату

Қолдану ережелері - белгілі бір триггерлерге негізделген трафикті манипуляциялау тәсілі. Бұл құралдың көмегімен біз қолданба профильдері немесе Edge шлюзінде қолжетімді басқа қызметтер арқылы мүмкін болмауы мүмкін қосымша жүктемені теңестіру ережелерін жасай аламыз.

  1. Ереже жасау үшін теңгерім құралының Қолданба ережелері қойындысына өтіңіз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  2. Ережені пайдаланатын атауды, сценарийді таңдап, «Сақтау» түймесін басыңыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  3. Ереже жасалғаннан кейін біз конфигурацияланған виртуалды серверді өңдеуіміз керек.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату
  4. Қосымша қойындысында біз жасаған ережені қосыңыз.
    Кішкентайларға арналған VMware NSX. 5-бөлім: Жүктеме балансын орнату

Жоғарыдағы мысалда біз tlsv1 қолдауын қостық.

Тағы бірнеше мысал:

Трафикті басқа пулға қайта бағыттаңыз.
Бұл сценарий арқылы біз негізгі пул жұмыс істемей тұрса, трафикті басқа теңдестіру пулына қайта бағыттай аламыз. Ереженің жұмыс істеуі үшін теңгерімде бірнеше пулдар конфигурациялануы керек және негізгі пулдың барлық мүшелері төмен күйде болуы керек. Пулдың идентификаторын емес, атын көрсету керек.

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

Одан да көп мысалдар осында.

Мен үшін теңгерімші туралы бәрі осы. Егер сізде сұрақтар болса, сұраңыз, мен жауап беруге дайынмын.

Ақпарат көзі: www.habr.com

пікір қалдыру