Ово је моје ажурирање
Пре свега, желим да се захвалим Цилиум тиму: момци су ми помогли да проверим и исправим скрипте за праћење метрике.
Шта се променило од новембра 2018
Ево шта се променило од тада (ако сте заинтересовани):
Фланнел остаје најбржи и најједноставнији ЦНИ интерфејс, али и даље не подржава мрежне политике и шифровање.
Романа више није подржана, па смо је уклонили из бенчмарка.
ВеавеНет сада подржава мрежне политике за Ингресс и Егресс! Али продуктивност је смањена.
У Цалицо-у и даље морате ручно да конфигуришете максималну величину пакета (МТУ) за најбоље перформансе. Цалицо нуди две опције за инсталирање ЦНИ, тако да можете без посебног ЕТЦД спремишта:
- чување стања у Кубернетес АПИ-ју као складиште података (величина кластера < 50 чворова);
- складиштење стања у Кубернетес АПИ-ју као складиште података са Типха проксијем да би се растеретило К8С АПИ (величина кластера > 50 чворова).
Калико је најавио подршку
Цилиум сада подржава шифровање! Цилиум обезбеђује шифровање са ИПСец тунелима и нуди алтернативу шифрованој ВеавеНет мрежи. Али ВеавеНет је бржи од Цилиума са омогућеном енкрипцијом.
Цилиум је сада лакше применити захваљујући уграђеном ЕТЦД оператеру.
Цилиум тим је покушао да смањи тежину свог ЦНИ-а смањењем потрошње меморије и трошкова ЦПУ-а, али су његови конкуренти и даље лакши.
Бенцхмарк контекст
Бенцхмарк се изводи на три невиртуелизована Супермицро сервера са 10 Гб Супермицро прекидачем. Сервери су повезани директно на свич преко пасивних ДАЦ СФП+ каблова и конфигурисани су на истом ВЛАН-у са јумбо оквирима (МТУ 9000).
Кубернетес 1.14.0 инсталиран на Убунту 18.04 ЛТС са Доцкер 18.09.2 (подразумевана верзија Доцкер-а у овом издању).
Да бисмо побољшали репродуктивност, одлучили смо да увек конфигуришемо мастер на првом чвору, серверски део бенчмарка поставимо на други сервер, а клијентски део на трећи. Да бисмо то урадили, користимо НодеСелецтор у примени Кубернетеса.
Референтне резултате ћемо описати на следећој скали:
Одабир ЦНИ за репер
Ово је референтна вредност само за ЦНИ са листе у одељку
Упоредићемо следеће ЦНИ:
- Цалицо в3.6
- Цанал в3.6 (у суштини фланел за умрежавање + Цалицо као заштитни зид)
- Цилиум 1.4.2
- Фланел 0.11.0
- Кубе-рутер 0.2.5
- ВеавеНет 2.5.1
Инсталација
Што је ЦНИ лакше инсталирати, то ће наш први утисак бити бољи. Сви ЦНИ-ови из бенчмарк-а се веома лако инсталирају (са једном или две команде).
Као што смо рекли, сервери и комутатор су конфигурисани са омогућеним јумбо оквирима (подесили смо МТУ на 9000). Били бисмо срећни када би ЦНИ аутоматски одредио МТУ на основу конфигурације адаптера. Међутим, ово су успели само Цилиум и Фланнел. Остали ЦНИ-ови имају захтеве на ГитХуб-у да додају аутоматско откривање МТУ-а, али ми ћемо га конфигурисати ручно променом ЦонфигМап-а за Цалицо, Цанал и Кубе-рутер, или прослеђивањем променљиве окружења за ВеавеНет.
У чему је проблем са нетачним МТУ-ом? Овај дијаграм показује разлику између ВеавеНет-а са омогућеним подразумеваним МТУ-ом и јумбо оквирима:
Видели смо колико је МТУ важан за перформансе, а сада да видимо како га наши ЦНИ аутоматски одређују:
Графикон показује да морате да конфигуришете МТУ за Цалицо, Цанал, Кубе-рутер и ВеавеНет за оптималне перформансе. Цилиум и Фланнел су били у могућности да сами исправно одреде МТУ без икаквих подешавања.
безбедност
Упоредићемо ЦНИ безбедност у два аспекта: способност шифровања пренетих података и имплементација Кубернетес мрежних политика (на основу стварних тестова, а не документације).
Само два ЦНИ-а шифрују податке: Цилиум и ВеавеНет. Шифровање ВеавеНет омогућено постављањем лозинке за шифровање као променљиве ЦНИ окружења. ИН
Што се тиче имплементације мрежне политике, они су успели Цалицо, Цанал, Цилиум и ВеавеНет, у којој можете да конфигуришете улазна и излазна правила. За Кубе-рутер постоје правила само за Ингресс, и Фланел Уопште не постоје мрежне политике.
Ево укупних резултата:
Резултати мерења перформанси безбедности
Перформансе
Ово мерило показује просечну пропусност током најмање три циклуса сваког теста. Тестирамо перформансе ТЦП-а и УДП-а (користећи иперф3), стварне апликације као што су ХТТП (са Нгинк-ом и цурл-ом) или ФТП (са всфтпд-ом и цурл-ом) и на крају перформансе апликација користећи шифровање засновано на СЦП-у (користећи клијент и сервер ОпенССХ).
За све тестове, извршили смо бенцхмарк (зелена линија) да бисмо упоредили ЦНИ перформансе са перформансама матичне мреже. Овде користимо исту скалу, али у боји:
- Жута = веома добра
- Наранџасто = добро
- Плава = тако-тако
- Црвено = лоше
Нећемо узимати погрешно конфигурисане ЦНИ-је и приказаћемо само резултате за ЦНИ-ове са исправним МТУ-ом. (Напомена: Цилиум не израчунава исправно МТУ ако омогућите шифровање, тако да ћете морати ручно да смањите МТУ на 8900 у верзији 1.4. Следећа верзија, 1.5, то ради аутоматски.)
Ево резултата:
Сви ЦНИ су се добро показали у ТЦП бенцхмарк-у. ЦНИ са енкрипцијом далеко заостаје јер је шифровање скупо.
И овде сви ЦНИ добро раде. ЦНИ са енкрипцијом показао је скоро исти резултат. Цилиум мало заостаје за конкуренцијом, али је само 2,3% голог метала, тако да није лош резултат. Не заборавите да су само Цилиум и Фланнел сами исправно одредили МТУ, а ово су њихови резултати без икакве додатне конфигурације.
Шта је са правом апликацијом? Као што видите, укупне перформансе за ХТТП су нешто ниже него за ТЦП. Чак и ако користите ХТТП са ТЦП-ом, конфигурисали смо иперф3 у ТЦП бенцхмарк-у да бисмо избегли спор почетак који би утицао на ХТТП бенцхмарк. Овде су сви урадили добар посао. Кубе-рутер има јасну предност, али ВеавеНет се није добро показао: око 20% лошији од голог метала. Цилиум и ВеавеНет са шифровањем изгледају заиста тужно.
Са ФТП-ом, другим протоколом заснованим на ТЦП-у, резултати се разликују. Фланнел и Кубе-роутер раде свој посао, али Цалицо, Цанал и Цилиум су мало иза и око 10% су спорији од голог метала. ВеавеНет заостаје чак 17%, али шифровани ВеавеНет је 40% испред шифрованог Цилиума.
Са СЦП-ом можемо одмах да видимо колико нас кошта ССХ енкрипција. Скоро сви ЦНИ раде добро, али ВеавеНет поново заостаје. Цилиум и ВеавеНет са енкрипцијом су очекивано најгори због двоструке енкрипције (ССХ + ЦНИ).
Ево табеле резимеа са резултатима:
Потрошња ресурса
Хајде сада да упоредимо како ЦНИ троши ресурсе под великим оптерећењем (током ТЦП преноса, 10 Гбпс). У тестовима перформанси поредимо ЦНИ са голим металом (зелена линија). За потрошњу ресурса, хајде да покажемо чист Кубернетес (љубичаста линија) без ЦНИ и видимо колико додатних ресурса ЦНИ троши.
Почнимо са памћењем. Овде је просечна вредност за РАМ чворова (без бафера и кеш меморије) у МБ током преноса.
Фланнел и Кубе-рутер су показали одличне резултате - само 50 МБ. Цалицо и Цанал имају по 70. ВеавеНет очигледно троши више од осталих – 130 МБ, а Цилиум чак 400.
Сада проверимо потрошњу времена процесора. вредан пажње: дијаграм не приказује проценте, већ ппм, односно 38 ппм за „голо гвожђе“ је 3,8%. Ево резултата:
Цалицо, Цанал, Фланнел и Кубе-рутер су веома ефикасни за процесор - само 2% више од Кубернетеса без ЦНИ-а. ВеавеНет далеко заостаје са додатних 5%, а следи Цилиум са 7%.
Ево резимеа потрошње ресурса:
Резултати
Табела са свим резултатима:
Закључак
У последњем делу ћу изнети своје субјективно мишљење о резултатима. Запамтите да ово мерило тестирања само тестира пропусност једне везе на веома малом кластеру (3 чвора). Не примењује се на велике кластере (<50 чворова) или паралелне везе.
Препоручујем коришћење следећих ЦНИ-ова у зависности од сценарија:
- Да ли имате у свом кластеру чворови са мало ресурса (неколико ГБ РАМ-а, неколико језгара) и нису вам потребне безбедносне функције - изаберите Фланел. Ово је један од најисплативијих ЦНИ. И компатибилан је са широким спектром архитектура (амд64, арм, арм64, итд.). Поред тога, ово је један од два (други је Цилиум) ЦНИ који могу аутоматски да одреде МТУ, тако да не морате ништа да конфигуришете. Кубе-рутер је такође погодан, али није стандардан и мораћете ручно да конфигуришете МТУ.
- Ако је потребно шифровање мреже ради сигурности, узми ВеавеНет. Не заборавите да наведете МТУ величину ако користите јумбо оквире и омогућите шифровање тако што ћете навести лозинку преко променљиве окружења. Али боље је заборавити на перформансе - то је цена шифровања.
- За нормална употреба Советуу Цалицо. Овај ЦНИ се широко користи у разним алатима за примену Кубернетеса (Копс, Кубеспраи, Ранцхер, итд.). Као и код ВеавеНет-а, обавезно конфигуришите МТУ у ЦонфигМап-у ако користите јумбо оквире. То је мултифункционални алат који је ефикасан у смислу потрошње ресурса, перформанси и сигурности.
И на крају, саветујем вам да пратите развој Цилиум. Овај ЦНИ има веома активан тим који много ради на свом производу (карактеристике, уштеде ресурса, перформансе, безбедност, кластерисање...) и имају веома занимљиве планове.
Визуелни дијаграм за избор ЦНИ
Извор: ввв.хабр.цом