Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Ово је моје ажурирање претходни бенцхмарк, који сада ради на Кубернетес 1.14 са најновијом ЦНИ верзијом од априла 2019.

Пре свега, желим да се захвалим Цилиум тиму: момци су ми помогли да проверим и исправим скрипте за праћење метрике.

Шта се променило од новембра 2018

Ево шта се променило од тада (ако сте заинтересовани):

Фланнел остаје најбржи и најједноставнији ЦНИ интерфејс, али и даље не подржава мрежне политике и шифровање.

Романа више није подржана, па смо је уклонили из бенчмарка.

ВеавеНет сада подржава мрежне политике за Ингресс и Егресс! Али продуктивност је смањена.

У Цалицо-у и даље морате ручно да конфигуришете максималну величину пакета (МТУ) за најбоље перформансе. Цалицо нуди две опције за инсталирање ЦНИ, тако да можете без посебног ЕТЦД спремишта:

  • чување стања у Кубернетес АПИ-ју као складиште података (величина кластера < 50 чворова);
  • складиштење стања у Кубернетес АПИ-ју као складиште података са Типха проксијем да би се растеретило К8С АПИ (величина кластера > 50 чворова).

Калико је најавио подршку политике на нивоу апликације на врху Истио-а за безбедност на нивоу апликације.

Цилиум сада подржава шифровање! Цилиум обезбеђује шифровање са ИПСец тунелима и нуди алтернативу шифрованој ВеавеНет мрежи. Али ВеавеНет је бржи од Цилиума са омогућеном енкрипцијом.

Цилиум је сада лакше применити захваљујући уграђеном ЕТЦД оператеру.

Цилиум тим је покушао да смањи тежину свог ЦНИ-а смањењем потрошње меморије и трошкова ЦПУ-а, али су његови конкуренти и даље лакши.

Бенцхмарк контекст

Бенцхмарк се изводи на три невиртуелизована Супермицро сервера са 10 Гб Супермицро прекидачем. Сервери су повезани директно на свич преко пасивних ДАЦ СФП+ каблова и конфигурисани су на истом ВЛАН-у са јумбо оквирима (МТУ 9000).

Кубернетес 1.14.0 инсталиран на Убунту 18.04 ЛТС са Доцкер 18.09.2 (подразумевана верзија Доцкер-а у овом издању).

Да бисмо побољшали репродуктивност, одлучили смо да увек конфигуришемо мастер на првом чвору, серверски део бенчмарка поставимо на други сервер, а клијентски део на трећи. Да бисмо то урадили, користимо НодеСелецтор у примени Кубернетеса.

Референтне резултате ћемо описати на следећој скали:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Одабир ЦНИ за репер

Ово је референтна вредност само за ЦНИ са листе у одељку о стварању једног главног кластера са кубеадм-ом Погледајте званичну Кубернетес документацију. Од 9 ЦНИ-а, узећемо само 6: искључићемо оне које је тешко инсталирати и/или не раде без конфигурације према документацији (Романа, Цонтив-ВПП и ЈуниперЦонтраил/ТунгстенФабриц).

Упоредићемо следеће ЦНИ:

  • Цалицо в3.6
  • Цанал в3.6 (у суштини фланел за умрежавање + Цалицо као заштитни зид)
  • Цилиум 1.4.2
  • Фланел 0.11.0
  • Кубе-рутер 0.2.5
  • ВеавеНет 2.5.1

Инсталација

Што је ЦНИ лакше инсталирати, то ће наш први утисак бити бољи. Сви ЦНИ-ови из бенчмарк-а се веома лако инсталирају (са једном или две команде).

Као што смо рекли, сервери и комутатор су конфигурисани са омогућеним јумбо оквирима (подесили смо МТУ на 9000). Били бисмо срећни када би ЦНИ аутоматски одредио МТУ на основу конфигурације адаптера. Међутим, ово су успели само Цилиум и Фланнел. Остали ЦНИ-ови имају захтеве на ГитХуб-у да додају аутоматско откривање МТУ-а, али ми ћемо га конфигурисати ручно променом ЦонфигМап-а за Цалицо, Цанал и Кубе-рутер, или прослеђивањем променљиве окружења за ВеавеНет.

У чему је проблем са нетачним МТУ-ом? Овај дијаграм показује разлику између ВеавеНет-а са омогућеним подразумеваним МТУ-ом и јумбо оквирима:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Како МТУ утиче на пропусност?

Видели смо колико је МТУ важан за перформансе, а сада да видимо како га наши ЦНИ аутоматски одређују:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
ЦНИ аутоматски детектује МТУ

Графикон показује да морате да конфигуришете МТУ за Цалицо, Цанал, Кубе-рутер и ВеавеНет за оптималне перформансе. Цилиум и Фланнел су били у могућности да сами исправно одреде МТУ без икаквих подешавања.

безбедност

Упоредићемо ЦНИ безбедност у два аспекта: способност шифровања пренетих података и имплементација Кубернетес мрежних политика (на основу стварних тестова, а не документације).

Само два ЦНИ-а шифрују податке: Цилиум и ВеавеНет. Шифровање ВеавеНет омогућено постављањем лозинке за шифровање као променљиве ЦНИ окружења. ИН документација ВеавеНет то описује на компликован начин, али све се ради једноставно. Шифровање Цилиум конфигурисан командама, креирањем Кубернетес тајни и модификацијом даемонСет-а (мало компликованије него у ВеавеНет-у, али Цилиум има корак по корак инструкције).

Што се тиче имплементације мрежне политике, они су успели Цалицо, Цанал, Цилиум и ВеавеНет, у којој можете да конфигуришете улазна и излазна правила. За Кубе-рутер постоје правила само за Ингресс, и Фланел Уопште не постоје мрежне политике.

Ево укупних резултата:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Резултати мерења перформанси безбедности

Перформансе

Ово мерило показује просечну пропусност током најмање три циклуса сваког теста. Тестирамо перформансе ТЦП-а и УДП-а (користећи иперф3), стварне апликације као што су ХТТП (са Нгинк-ом и цурл-ом) или ФТП (са всфтпд-ом и цурл-ом) и на крају перформансе апликација користећи шифровање засновано на СЦП-у (користећи клијент и сервер ОпенССХ).

За све тестове, извршили смо бенцхмарк (зелена линија) да бисмо упоредили ЦНИ перформансе са перформансама матичне мреже. Овде користимо исту скалу, али у боји:

  • Жута = веома добра
  • Наранџасто = добро
  • Плава = тако-тако
  • Црвено = лоше

Нећемо узимати погрешно конфигурисане ЦНИ-је и приказаћемо само резултате за ЦНИ-ове са исправним МТУ-ом. (Напомена: Цилиум не израчунава исправно МТУ ако омогућите шифровање, тако да ћете морати ручно да смањите МТУ на 8900 у верзији 1.4. Следећа верзија, 1.5, то ради аутоматски.)

Ево резултата:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
ТЦП Перформансе

Сви ЦНИ су се добро показали у ТЦП бенцхмарк-у. ЦНИ са енкрипцијом далеко заостаје јер је шифровање скупо.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
УДП перформансе

И овде сви ЦНИ добро раде. ЦНИ са енкрипцијом показао је скоро исти резултат. Цилиум мало заостаје за конкуренцијом, али је само 2,3% голог метала, тако да није лош резултат. Не заборавите да су само Цилиум и Фланнел сами исправно одредили МТУ, а ово су њихови резултати без икакве додатне конфигурације.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Шта је са правом апликацијом? Као што видите, укупне перформансе за ХТТП су нешто ниже него за ТЦП. Чак и ако користите ХТТП са ТЦП-ом, конфигурисали смо иперф3 у ТЦП бенцхмарк-у да бисмо избегли спор почетак који би утицао на ХТТП бенцхмарк. Овде су сви урадили добар посао. Кубе-рутер има јасну предност, али ВеавеНет се није добро показао: око 20% лошији од голог метала. Цилиум и ВеавеНет са шифровањем изгледају заиста тужно.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Са ФТП-ом, другим протоколом заснованим на ТЦП-у, резултати се разликују. Фланнел и Кубе-роутер раде свој посао, али Цалицо, Цанал и Цилиум су мало иза и око 10% су спорији од голог метала. ВеавеНет заостаје чак 17%, али шифровани ВеавеНет је 40% испред шифрованог Цилиума.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Са СЦП-ом можемо одмах да видимо колико нас кошта ССХ енкрипција. Скоро сви ЦНИ раде добро, али ВеавеНет поново заостаје. Цилиум и ВеавеНет са енкрипцијом су очекивано најгори због двоструке енкрипције (ССХ + ЦНИ).

Ево табеле резимеа са резултатима:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Потрошња ресурса

Хајде сада да упоредимо како ЦНИ троши ресурсе под великим оптерећењем (током ТЦП преноса, 10 Гбпс). У тестовима перформанси поредимо ЦНИ са голим металом (зелена линија). За потрошњу ресурса, хајде да покажемо чист Кубернетес (љубичаста линија) без ЦНИ и видимо колико додатних ресурса ЦНИ троши.

Почнимо са памћењем. Овде је просечна вредност за РАМ чворова (без бафера и кеш меморије) у МБ током преноса.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Потрошња меморије

Фланнел и Кубе-рутер су показали одличне резултате - само 50 МБ. Цалицо и Цанал имају по 70. ВеавеНет очигледно троши више од осталих – 130 МБ, а Цилиум чак 400.
Сада проверимо потрошњу времена процесора. вредан пажње: дијаграм не приказује проценте, већ ппм, односно 38 ппм за „голо гвожђе“ је 3,8%. Ево резултата:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Потрошња ЦПУ-а

Цалицо, Цанал, Фланнел и Кубе-рутер су веома ефикасни за процесор - само 2% више од Кубернетеса без ЦНИ-а. ВеавеНет далеко заостаје са додатних 5%, а следи Цилиум са 7%.

Ево резимеа потрошње ресурса:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)

Резултати

Табела са свим резултатима:

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Општи резултати мерења

Закључак

У последњем делу ћу изнети своје субјективно мишљење о резултатима. Запамтите да ово мерило тестирања само тестира пропусност једне везе на веома малом кластеру (3 чвора). Не примењује се на велике кластере (<50 чворова) или паралелне везе.

Препоручујем коришћење следећих ЦНИ-ова у зависности од сценарија:

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

И на крају, саветујем вам да пратите развој Цилиум. Овај ЦНИ има веома активан тим који много ради на свом производу (карактеристике, уштеде ресурса, перформансе, безбедност, кластерисање...) и имају веома занимљиве планове.

Кубернетес мрежни додатак (ЦНИ) бенцхмарк резултати преко 10 Гбпс мреже (ажурирано: април 2019.)
Визуелни дијаграм за избор ЦНИ

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

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