Преглед и поређење Ингресс контролера за Кубернетес

Преглед и поређење Ингресс контролера за Кубернетес

Када покрећете Кубернетес кластер за одређену апликацију, морате да разумете шта сама апликација, посао и програмери представљају овом ресурсу. Са овим информацијама можете почети да доносите архитектонску одлуку и, посебно, бирате одређени Ингресс контролер, којих данас већ постоји велики број. Да бисмо стекли основну представу о доступним опцијама без потребе да пролазимо кроз много чланака / документације итд., припремили смо овај преглед, укључујући главне (спремне за производњу) Ингресс контролере.

Надамо се да ће то помоћи колегама у избору архитектонског решења - барем ће постати полазна тачка за добијање детаљнијих информација и практичних експеримената. Раније смо проучавали друге сличне материјале на мрежи и, што је чудно, нисмо пронашли ни једну мање-више потпуну, и што је најважније - структурирану - рецензију. Па хајде да попунимо ту празнину!

Критеријуми

У принципу, да бисте направили поређење и добили било какав користан резултат, потребно је да разумете не само предметну област, већ и да имате специфичну листу критеријума који ће поставити вектор истраживања. Без претварања да анализирамо све могуће случајеве коришћења Ингресс/Кубернетес-а, покушали смо да истакнемо најопштије захтеве за контролере - будите спремни да ћете у сваком случају морати да проучите све своје специфичности и појединости посебно.

Али почећу са карактеристикама које су постале толико познате да се примењују у свим решењима и не узимају се у обзир:

  • динамичко откривање услуга (сервице дисцовери);
  • ССЛ терминација;
  • рад са вебсоцкетс.

Сада за тачке поређења:

Подржани протоколи

Један од основних критеријума избора. Ваш софтвер можда неће радити на стандардном ХТТП-у или ће можда захтевати рад на више протокола одједном. Ако је ваш случај нестандардан, обавезно узмите у обзир овај фактор како не бисте морали касније да поново конфигуришете кластер. За све контролере листа подржаних протокола варира.

софтвер у сржи

Постоји неколико варијација апликација на којима се базира контролер. Популарни су нгинк, траефик, хапроки, енвои. У општем случају, то можда неће имати много утицаја на то како се саобраћај прима и преноси, али је увек корисно знати потенцијалне нијансе и карактеристике онога што је „испод хаубе“.

Усмеравање саобраћаја

На основу чега је могуће донети одлуку о правцу саобраћаја ка одређеној служби? Обично су то домаћин и путања, али постоје додатне могућности.

Именски простор унутар кластера

Именски простор (именски простор) - могућност логичке поделе ресурса у Кубернетес-у (на пример, на сцени, производњи итд.). Постоје Ингресс контролери који се морају инсталирати засебно у сваком именском простору (и тада могу да усмеравају саобраћај само на махуне овог простора). А постоје и они (и њихова јасна већина) који раде глобално за цео кластер - у њима се саобраћај усмерава на било који под кластера, без обзира на именски простор.

Узорци за узводно

Како се саобраћај усмерава на здраве инстанце апликације, услуге? Постоје опције са активним и пасивним проверама, поновним покушајима, прекидачима (За више детаља, погледајте нпр. чланак о Истију), прилагођене здравствене провере итд. Веома важан параметар ако имате високе захтеве за доступност и благовремено уклањање неуспешних услуга из балансирања.

Алгоритми за балансирање

Постоји много опција: од традиционалних разигравање до егзотике рдп-цоокие, као и појединачне карактеристике попут лепљиве сесије.

Аутентикација

Које шеме ауторизације подржава контролор? Басиц, дигест, оаутх, ектернал-аутх - мислим да би ове опције требале бити познате. Ово је важан критеријум ако постоји много развојних (и/или само приватних) петљи којима се приступа преко Ингресс-а.

Дистрибуција саобраћаја

Да ли контролор подржава такве најчешће коришћене механизме дистрибуције саобраћаја као што су канаринац (канаринац), А/Б тестирање, пресликавање саобраћаја (зрцаљење/сенка)? Ово је заиста болна тема за апликације које захтевају прецизно и прецизно управљање саобраћајем за продуктивно тестирање, отклањање грешака у производу ван мреже (или са минималним губитком), анализу саобраћаја и тако даље.

Плаћена претплата

Да ли постоји плаћена опција за контролер, са напредном функционалношћу и/или техничком подршком?

Графички кориснички интерфејс (веб кориснички интерфејс)

Да ли постоји ГУИ за управљање конфигурацијом контролера? Углавном за "згодност" и / или за оне који морају да унесу неке промене у конфигурацију Ингресс'а, али рад са "сировим" шаблонима је незгодан. Може бити корисно ако програмери желе да спроведу неке експерименте са саобраћајем у ходу.

ЈВТ валидација

Присуство уграђене валидације ЈСОН веб токена за ауторизацију и валидацију корисника до крајње апликације.

Могућности за прилагођавање конфигурације

Проширивост шаблона у смислу поседовања механизама који вам омогућавају да додате сопствене директиве, заставице, итд. у стандардне шаблоне конфигурације.

Основни механизми ДДОС заштите

Једноставни алгоритми ограничења брзине или сложеније опције филтрирања саобраћаја на основу адреса, белих листа, земаља итд.

Захтевај траг

Могућност праћења, праћења и отклањања грешака захтева од Ингрессес-а до одређених услуга/подова, а идеално и између услуга/подова.

ВАФ

подршка заштитни зид апликације.

Контролори

Списак контролора формиран је на основу званична Кубернетес документација и овај сто. Неке од њих смо искључили из прегледа због специфичности или ниске преваленције (рана фаза развоја). Остало се разматра у наставку. Почнимо са општим описом решења и наставимо са збирном табелом.

Улаз из Кубернетеса

Сајт: гитхуб.цом/кубернетес/ингресс-нгинк
Лиценца: Апацһе 2.0

Ово је званични контролер за Кубернетес и развија га заједница. Очигледно из имена, заснован је на нгинк-у и допуњен је другачијим скупом Луа додатака који се користе за имплементацију додатних функција. Због популарности самог нгинк-а и минималних модификација када се користи као контролер, ова опција може бити најлакша и најлакша за конфигурисање за просечног инжењера (са веб искуством).

Ингресс би НГИНКС Инц.

Сајт: гитхуб.цом/нгинкинц/кубернетес-ингресс
Лиценца: Апацһе 2.0

Званични производ нгинк програмера. Има плаћену верзију засновану на НГИНКС Плус. Главна идеја је висок ниво стабилности, стална компатибилност уназад, одсуство било каквих страних модула и декларисана повећана брзина (у поређењу са званичним контролером), постигнута због одбијања Луа.

Бесплатна верзија је значајно смањена, чак иу поређењу са званичним контролером (због недостатка истих Луа модула). У исто време, плаћени има прилично широку додатну функционалност: метрике у реалном времену, ЈВТ валидацију, активне здравствене провере и још много тога. Важна предност у односу на НГИНКС Ингресс је пуна подршка за ТЦП/УДП саобраћај (и у верзији заједнице!). минус - одсуство функција дистрибуције саобраћаја, која, међутим, „има највећи приоритет за програмере“, али је потребно време за имплементацију.

Конг Ингресс

Сајт: гитхуб.цом/Конг/кубернетес-ингресс-цонтроллер
Лиценца: Апацһе 2.0

Производ који је развио Конг Инц. у две верзије: комерцијалној и бесплатној. Заснован на нгинк-у, који је проширен великим бројем Луа модула.

У почетку је био фокусиран на обраду и рутирање АПИ захтева, тј. као АПИ Гатеваи, али је тренутно постао пуноправни Ингресс контролер. Главне предности: велики број додатних модула (укључујући оне од програмера трећих страна) који се лако инсталирају и конфигуришу и уз помоћ којих се имплементира широк спектар додатних функција. Међутим, уграђене функције већ нуде многе могућности. Конфигурисање посла се врши коришћењем ЦРД ресурса.

Важна карактеристика производа - рад унутар исте контуре (уместо унакрсног размака имена) је контроверзна тема: за неке ће то изгледати као недостатак (морате да направите ентитете за сваку контуру), а за некога је то карактеристика ( боВећи ниво изолације, као ако је један контролер покварен, онда је проблем ограничен само на коло).

Траефик

Сајт: гитхуб.цом/цонтаиноус/траефик
Лиценца: МИТ

Прокси који је првобитно креиран да ради са рутирањем захтева за микросервисе и њихово динамичко окружење. Отуда многе корисне функције: ажурирање конфигурације без поновног покретања, подршка за велики број метода балансирања, веб интерфејс, прослеђивање метрике, подршка за различите протоколе, РЕСТ АПИ, канарска издања и још много тога. Још једна лепа карактеристика је подршка за Лет'с Енцрипт сертификате из кутије. Недостатак је у томе што ће за организовање високе доступности (ХА) контролер морати да инсталира и повеже сопствену КВ складиште.

ХАПроки

Сајт: гитхуб.цом/јцмораисјр/хапроки-ингресс
Лиценца: Апацһе 2.0

ХАПроки је дуго био познат као прокси и балансатор саобраћаја. Као део Кубернетес кластера, нуди „меко“ ажурирање конфигурације (без губитка саобраћаја), откривање услуге на основу ДНС-а, динамичку конфигурацију користећи АПИ. Може бити атрактивно потпуно прилагодити конфигурациони шаблон заменом ЦМ-а, као и могућност коришћења функција Сприг библиотеке у њему. Генерално, главни нагласак решења је на великој брзини, његовој оптимизацији и ефикасности у потрошеним ресурсима. Предност контролера је подршка рекордног броја различитих метода балансирања.

Воиагер

Сајт: гитхуб.цом/аппсцоде/воиагер
Лиценца: Апацһе 2.0

Заснован на ХАпроки контролеру, који је позициониран као универзално решење које подржава широк спектар функција код великог броја провајдера. Нуди се прилика за балансирање саобраћаја на Л7 и Л4, а балансирање ТЦП Л4 саобраћаја у целини може се назвати једном од кључних карактеристика решења.

Цонтоур

Сајт: гитхуб.цом/хептио/цонтоур
Лиценца: Апацһе 2.0

Ово решење није засновано само на Енвои-у: развио га је заједнички са ауторима овог популарног пуномоћника. Важна карактеристика је могућност одвајања контроле над Ингресс ресурсима помоћу ИнгрессРоуте ЦРД ресурса. За организације са много развојних тимова који користе исти кластер, ово помаже да се максимизира безбедност рада са саобраћајем у суседним петљама и заштити их од грешака при промени Ингресс ресурса.

Такође нуди проширени скуп метода балансирања (постоји пресликавање захтева, аутоматско понављање, ограничавање брзине захтева и још много тога), детаљно праћење тока саобраћаја и кварова. Можда ће некоме бити значајан недостатак недостатак подршке за лепљиве сесије (иако рад већ у току).

Истио Ингресс

Сајт: истио.ио/доцс/таскс/траффиц-манагемент/ингресс
Лиценца: Апацһе 2.0

Свеобухватно сервисно месх решење које није само Ингресс контролер који управља долазним саобраћајем споља, већ контролише и сав саобраћај унутар кластера. Испод хаубе, Енвои се користи као помоћни прокси за сваку услугу. У суштини, ово је велики комбинат који „може све“, а његова главна идеја је максимална управљивост, проширивост, сигурност и транспарентност. Помоћу њега можете фино подесити рутирање саобраћаја, ауторизацију приступа између сервиса, балансирање, надгледање, канарска издања и још много тога. Прочитајте више о Истиу у серији чланака "Назад на микроуслуге са Истиом'.

Амбасадор

Сајт: гитхуб.цом/датавире/амбассадор
Лиценца: Апацһе 2.0

Друго решење засновано на Енвои-у. Има бесплатне и комерцијалне верзије. Позициониран је као „потпуно урођен за Кубернетес“, што доноси одговарајуће предности (тесна интеграција са методама и ентитетима кластера К8с).

табела поређења

Дакле, кулминација чланка је ова огромна табела:

Преглед и поређење Ингресс контролера за Кубернетес

Може се кликнути за ближи преглед, а такође је доступан у формату Гоогле листови.

da резимирамо

Сврха овог чланка је да пружи потпуније разумевање (међутим, нипошто не исцрпно!) о томе који избор да направите у вашем конкретном случају. Као и обично, сваки контролер има своје предности и мане…

Класични Ингресс из Кубернетеса је добар по својој доступности и доказаности, довољно богатим функцијама - у општем случају, требало би да буде „довољно за очи“. Међутим, ако постоје повећани захтеви за стабилност, ниво функција и развој, требало би да обратите пажњу на Ингресс са НГИНКС Плус и плаћену претплату. Конг има најбогатији сет додатака (и, сходно томе, могућности које пружају), ау плаћеној верзији их је још више. Има обиље могућности да ради као АПИ мрежни пролаз, динамичку конфигурацију засновану на ЦРД ресурсима, као и основне Кубернетес услуге.

Са повећаним захтевима за методе балансирања и ауторизације, погледајте Траефик и ХАПроки. Ово су отворени пројекти, доказани годинама, веома стабилни и активно се развијају. Цонтоур је изашао већ неколико година, али још увек изгледа премладо и има само основне карактеристике које су додате на Енвои. Ако постоје захтеви за присуство / уграђивање ВАФ-а испред апликације, треба обратити пажњу на исти Ингресс из Кубернетес-а или ХАПроки-а.

А најбогатији у смислу карактеристика су производи направљени на врху Енвои-а, посебно Истио. Чини се да је то свеобухватно решење које „може све“, што, међутим, такође значи и знатно већи улазни праг за конфигурацију / покретање / администрацију од других решења.

Изабрали смо и још увек користимо Ингресс из Кубернетеса као стандардни контролер, који покрива 80-90% потреба. Прилично је поуздан, једноставан за конфигурисање и проширење. Генерално, у недостатку специфичних захтева, требало би да одговара већини кластера / апликација. Од истих универзалних и релативно једноставних производа, могу се препоручити Траефик и ХАПроки.

ПС

Прочитајте и на нашем блогу:

Извор: ввв.хабр.цом

Додај коментар