Кубернетес 1.14: преглед главних иновација

Кубернетес 1.14: преглед главних иновација

Ова ноћ ће се догодити следеће издање Кубернетеса - 1.14. По традицији која се развила за наш блог, говоримо о кључним променама у новој верзији овог дивног Опен Соурце производа.

Информације које се користе за припрему овог материјала су преузете из Табеле за праћење Кубернетес побољшања, ЦХАНГЕЛОГ-1.14 и повезана питања, захтеви за повлачење, предлози за побољшање Кубернетеса (КЕП).

Почнимо са важним уводом из животног циклуса кластера СИГ: динамички кластери за превазилажење грешке Кубернетес (или да будемо прецизнији, само-хостоване ХА имплементације) је сада можете креирати коришћењем познатих (у контексту кластера са једним чвором) команди kubeadm (init и join). Укратко, за ово:

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

Кубернетес 1.14: преглед главних иновација
Архитектура Кубернетес ХА кластера креираног помоћу кубеадм-а

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

АПИ за

Тим apply и уопште говорећи декларативно управљање објектима положио од kubectl ин аписервер. Сами програмери укратко образлажу своју одлуку тиме kubectl apply - фундаментални део рада са конфигурацијама у Кубернетесу, међутим, „пун је грешака и тешко га је поправити“, и стога ову функционалност треба вратити у нормалу и пренети на контролну раван. Једноставни и јасни примери проблема који постоје данас:

Кубернетес 1.14: преглед главних иновација

Детаљи о имплементацији су у Кеп. Тренутна спремност је алфа (промоција у бета верзију је планирана за следеће издање Кубернетеса).

Доступан у алфа верзији прилика користећи ОпенАПИ в3 шему за креирање и објављивање ОпенАПИ документације за ЦустомРесоурцес (ЦР) који се користи за валидацију (на страни сервера) К8с кориснички дефинисаних ресурса (ЦустомРесоурцеДефинитион, ЦРД). Објављивање ОпенАПИ-ја за ЦРД омогућава клијентима (нпр. kubectl) извршите валидацију на вашој страни (унутар kubectl create и kubectl apply) и издају документацију по шеми (kubectl explain). Детаљи - ин Кеп.

Претходно постојеће евиденције сада се отварају са заставом O_APPEND (али не O_TRUNC) да би се избегао губитак трупаца у неким ситуацијама и ради погодности скраћивања трупаца спољним услужним програмима за ротацију.

Такође у контексту Кубернетес АПИ-ја, може се приметити да у PodSandbox и PodSandboxStatus додао је поље runtime_handler за бележење информација о RuntimeClass у под (више о томе прочитајте у тексту о Кубернетес 1.12 издање, где се ова класа појавила као алфа верзија), и у Адмиссион Вебхоокс имплементиран способност да одреди које верзије AdmissionReview подржавају. Коначно, правила за Вебхоокс за пријем су сада може бити ограничен степен њихове употребе именским просторима и оквирима кластера.

Складиште

PersistentLocalVolumes, који је имао бета статус од објављивања К8с 1.10, најавио стабилна (ГА): ова функција капија више није онемогућена и биће уклоњена у Кубернетес 1.17.

Прилика коришћењем променљивих окружења тзв Довнвард АПИ (на пример, име под) за називе директоријума монтираних као subPath, развијен је – у виду новог поља subPathExpr, који се сада користи за одређивање жељеног имена директоријума. Ова функција се првобитно појавила у Кубернетес 1.11, али је за 1.14 остала у статусу алфа верзије.

Као и код претходног издања Кубернетес-а, уведене су многе значајне промене за ЦСИ (Цонтаинер Стораге Интерфаце) који се активно развија:

ЦСИ

Постао доступан (као део алфа верзије) подршка промена величине за ЦСИ волумене. Да бисте га користили, мораћете да омогућите функцију капију под називом ExpandCSIVolumes, као и доступност подршке за ову операцију у одређеном ЦСИ драјверу.

Још једна карактеристика за ЦСИ у алфа верзији - прилика упућују директно (тј. без употребе ПВ/ПВЦ) на ЦСИ запремине у оквиру спецификације под. Ово уклања ограничење употребе ЦСИ-а као искључиво удаљеног складиштења података, отварајући им врата у свет локалне ефемерне свеске. За употребу (пример из документације) мора бити омогућено CSIInlineVolume карактеристика капија.

Такође је дошло до напретка у „унутрашњости“ Кубернетес-а у вези са ЦСИ, која није толико видљива крајњим корисницима (администраторима система)... Тренутно су програмери принуђени да подржавају две верзије сваког додатка за складиштење: једну – „у стари начин”, унутар К8с кодне базе (у -трее), а други – као део новог ЦСИ (прочитајте више о томе, на пример, у овде). Ово узрокује разумљиве непријатности које треба решити како се сам ЦСИ стабилизује. Није могуће једноставно одбацити АПИ интерних додатака (у стаблу) због релевантну политику Кубернетеса.

Све ово је довело до тога да је алфа верзија стигла процес миграције интерни плугин код, имплементиран као ин-трее, у ЦСИ додацима, захваљујући чему ће се бриге програмера свести на подршку једне верзије њихових додатака, а компатибилност са старим АПИ-јима ће остати и они се могу прогласити застарелим у уобичајеном сценарију. Очекује се да ће до следећег издања Кубернетес-а (1.15) сви додаци добављача облака бити мигрирани, имплементација ће добити бета статус и да ће бити активирана у К8с инсталацијама подразумевано. За детаље погледајте предлог дизајна. Ова миграција је такође резултирала неуспех од ограничења количине дефинисаних од стране одређених добављача облака (АВС, Азуре, ГЦЕ, Циндер).

Поред тога, подршка за блок уређаје са ЦСИ (CSIBlockVolume) пренео на бета верзију.

Чворови/Кубелет

Представљена алфа верзија нова крајња тачка у Кубелету, дизајниран за повратне метрике за кључне ресурсе. Уопштено говорећи, ако је раније Кубелет добијао статистику о коришћењу контејнера од цАдвисор-а, сада ови подаци долазе из окружења за извршавање контејнера преко ЦРИ (Цонтаинер Рунтиме Интерфаце), али је такође сачувана компатибилност за рад са старијим верзијама Доцкер-а. Раније су статистике прикупљене у Кубелет-у слане преко РЕСТ АПИ-ја, али сада крајња тачка која се налази на /metrics/resource/v1alpha1. Дугорочна стратегија програмера састоји се је да се минимизира скуп метрика које пружа Кубелет. Узгред, ове метрике саме сада зову не „основне метрике“, већ „метрике ресурса“, а описују се као „првокласни ресурси, као што су процесор и меморија“.

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

„гРПЦ није компатибилан са главним цевоводима за праћење. Крајња тачка ће бити корисна само за испоруку метрике на Метрицс Сервер или надгледање компоненти које се директно интегришу са њим. Перформансе Прометхеус текстуалног формата када се користи кеширање у Метрицс Сервер-у довољно добро да бисмо ми дали предност Прометеју у односу на гРПЦ с обзиром на широко распрострањено усвајање Прометеја у заједници. Када ОпенМетрицс формат постане стабилнији, моћи ћемо да приступимо перформансама гРПЦ-а са форматом заснованим на прото.

Кубернетес 1.14: преглед главних иновација
Један од упоредних тестова перформанси коришћења гРПЦ и Прометхеус формата у новој Кубелет крајњој тачки за метрику. Више графикона и других детаља можете пронаћи у Кеп.

Између осталих промена:

  • Кубелет сада (једном) покушава да заустави контејнери у непознатом стању пре поновног покретања и брисања операција.
  • Када користите PodPresets сада у инит контејнер се додаје исте информације као и за обичан контејнер.
  • Кубелет почео да користи usageNanoCores од добављача ЦРИ статистике, и за чворове и контејнере на Виндовс-у додао је мрежна статистика.
  • Информације о оперативном систему и архитектури су сада забележене у налепницама kubernetes.io/os и kubernetes.io/arch Објекти чвора (пренети из бета верзије у ГА).
  • Могућност специфицирања одређене групе корисника система за контејнере у под (RunAsGroup, појавио у К8с 1.11) напредно пре бета (подразумевано омогућено).
  • ду и пронађи се користи у цАдвисору, замењени на имплементацији Го.

ПГ

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

Кубернетес 1.14: преглед главних иновација
Пример једноставног коришћења датотеке Подешавање (комплекснија примена кустомизе је могућа унутар прекривања)

Додатно:

  • Додато нови тим kubectl create cronjob, чије име говори само за себе.
  • В kubectl logs Сада можете комбиновати заставе -f (--follow за стримовање дневника) и -l (--selector за упит ознаке).
  • кубецтл учио копирајте датотеке одабране помоћу џокер картице.
  • Тиму kubectl wait додато застава --all да изаберете све ресурсе у именском простору наведеног типа ресурса.

Други

Следеће могућности су добиле стабилан (ГА) статус:

Остале промене уведене у Кубернетес 1.14:

  • Подразумевана РБАЦ политика више не дозвољава приступ АПИ-ју discovery и access-review корисника без аутентификације (неауторизовано).
  • Званична подршка за ЦореДНС осигурано Само за Линук, тако да када користите кубеадм да га примените (ЦореДНС) у кластеру, чворови морају да раде само на Линук-у (нодеСелецторс се користи за ово ограничење).
  • Подразумевана ЦореДНС конфигурација је сада користи додатак за напред уместо пуномоћника. Такође, у ЦореДНС-у додао је реадинессПробе, која спречава балансирање оптерећења на одговарајућим (који нису спремни за сервис) под.
  • У кубеадм-у, на фазама init или upload-certs, постало могуће учитајте сертификате потребне за повезивање нове контролне равни са тајном кубеадм-цертс (користите заставицу --experimental-upload-certs).
  • Појавила се алфа верзија за Виндовс инсталације подршка гМСА (Гроуп Манагед Сервице Аццоунт) – посебни налози у Ацтиве Дирецтори-у који такође могу да користе контејнери.
  • За Г.Ц.Е. активиран мТЛС енкрипција између етцд и кубе-аписервера.
  • Ажурирања у коришћеном/зависном софтверу: Го 1.12.1, ЦСИ 1.1, ЦореДНС 1.3.1, подршка за Доцкер 18.09 у кубеадм-у, а минимална подржана верзија Доцкер АПИ-ја је сада 1.26.

ПС

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

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

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