Выпуск Kubernetes 1.18, сістэмы кіравання кластарам ізаляваных кантэйнераў

Апублікаваны рэліз платформы аркестроўкі кантэйнераў Кубернетэс 1.18, Якая дазваляе як адзіным цэлым кіраваць кластарам з ізаляваных кантэйнераў і якая прадстаўляе механізмы для разгортвання, суправаджэння і маштабавання выкананых у кантэйнерах прыкладанняў. Праект першапачаткова быў створаны кампаніяй Google, але затым пераведзены на незалежную пляцоўку, якая курыруецца арганізацыяй Linux Foundation. Платформа пазіцыянуецца як універсальнае рашэнне, якое развіваецца супольнасцю, не прывязанае да асобных сістэм і здольнае працаваць з любымі праграмамі ў любых хмарных асяродках. Код Kubernetes напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0.

Даюцца функцыі для разгортвання і кіравання інфраструктурай, такія як вядзенне базы DNS, балансаванне нагрузкі,
размеркаванне кантэйнераў па вузлах кластара (міграцыя кантэйнераў у залежнасці ад змены нагрузкі і запатрабаванняў у сэрвісах), праверка працаздольнасці на ўзроўні прыкладанняў, кіраванне акаўнтамі, абнаўленне і дынамічнае маштабаванне які працуе кластара, без яго прыпынку. Магчыма разгортванне груп кантэйнераў з выкананнем аперацый абнаўленняў і адмены змен адразу для ўсёй групы, а таксама лагічнае разбіццё кластара на часткі з падзелам рэсурсаў. Маецца падтрымка дынамічнай міграцыі прыкладанняў, для захоўвання дадзеных якіх могуць прымяняцца як лакальныя сховішчы, так і сеткавыя сістэмы захоўвання.

Выпуск Kubernetes 1.18 уключае 38 змен і паляпшэнняў, з якіх 15 перакладзеныя ў статут стабільных, а 11 у статут бэта. 12 новых змен прапанаваны ў статусе альфа. Пры падрыхтаваным новай версіі роўныя намаганні былі накіраваны як на дапрацоўку рознай функцыянальнасці і стабілізацыю эксперыментальных магчымасцяў, так і на даданне новых распрацовак. Асноўныя змены:

  • Кубэктль
    • Дададзена альфа-версія каманды "kubectl debug", якая дазваляе спрасціць адладку ў падах, з дапамогай запуску эфемерных кантэйнераў з прыладамі для адладкі.
    • Аб'яўлена стабільнай каманда "kubectl diff", якая дазваляе паглядзець што зменіцца ў кластары, калі прымяніць маніфест.
    • Прыбраныя усе генератары каманды "kubectl run", акрамя генератара запуску адзіночнага пода.
    • Змянілі сцяг "-dry-run", у залежнасці ад яго значэння (client, server і none) пробнае выкананне каманды выконваецца на баку кліента або сервера.
    • Код kubectl выдзелены у асобны рэпазітар. Гэта дазволіла аддзяліць kubectl ад унутраных залежнасцяў kubernetes і палегчыла імпарт кода ў іншыя праекты.
  • Уваход
    • Пачалося змена API group для Ingress на networking.v1beta1.
    • Дададзены новыя палі:
      • pathType, якое дазваляе паказаць якім спосабам будзе параўноўвацца шлях у запыце
      • IngressClassName - замена анатацыі kubernetes.io/ingress.class, якая абвешчана deprecated. У гэтым полі ўказваецца назва спецыяльнага аб'екта InressClass
    • Дададзены аб'ект IngressClass, у якім паказваецца назва інгрэс кантролера, яго дадатковыя параметры і прыкмета выкарыстання яго па змаўчанні
  • абслугоўванне
    • Дададзена поле AppProtocol, у якім можна паказаць які пратакол выкарыстоўвае дадатак
    • Перакладзены у статус бэта і ўключаны па змаўчанні EndpointSlicesAPI, які з'яўляецца больш функцыянальнай заменай звычайных Endpoints.
  • сетка
  • Пастаянныя дыскі. Абвешчана стабільнай наступная функцыянальнасць:
  • Канфігураванне прыкладання
    • У аб'екты ConfigMap і Secret дададзена новае поле "immutable". Усталяванне значэнне поля ў true забараняе змену аб'екта.
  • Планавальнік
    • Дададзена магчымасць ствараць дадатковыя профілі для kube-scheduler. Калі раней патрабавалася запускаць дадатковыя асобныя планавальнікі для рэалізацыі нестандартных алгарытмаў размеркавання подаў, то зараз з'явілася магчымасць стварыць дадатковыя наборы налад для стандартнага планавальніка і паказаць яго назоў у тым жа поле пода ".spec.schedulerName". Статус - альфа.
    • Taint Based Eviction абвешчана стабільнай
  • маштабаванне
    • Дададзена магчымасць паказаць у маніфесце HPA ступень агрэсіўнасці пры змене колькасці запушчаных подаў, гэта значыць пры павелічэнні нагрузкі запускаць адразу ў N разоў больш асобнікаў (instance).
  • кубелет
    • Topology Manager атрымаў статут бэта. Функцыя ўключае NUMA-размеркаванне, што дазваляе пазбегнуць дэградацыі прадукцыйнасці на мульты-сокетных сістэмах.
    • Статус бэта атрымала функцыя PodOverhead, якая дазваляе паказаць у RuntimeClass дадатковую колькасць рэсурсаў, неабходнае для запуску пода.
    • Пашырана падтрымка HugePages, у альфа статусе дададзена ізаляцыя на ўзроўні кантэйнера і падтрымка некалькіх памераў hugepages.
    • Выдалены endpoint для метрык /metrics/resource/v1alpha1, замест яго выкарыстоўваецца /metrics/resource
  • API
    • Канчаткова прыбралі магчымасць выкарыстоўваць састарэлыя API group apps/v1beta1 і extensions/v1beta1.
    • ServerSide Apply падвышаны да статуту бета2. Гэтае паляпшэнне пераносіць маніпуляцыю аб'ектамі з kubectl у API-сервер. Аўтары паляпшэння сцвярджаюць, што гэта дазволіць адрамантаваць мноства існуючых памылак, якія немагчыма выправіць у бягучай сітуацыі. Таксама яны дадалі раздзел ".metadata.managedFields", у якім прапануюць захоўваць гісторыю змен аб'екта, з указаннем хто, калі і што менавіта змяніў.
    • Аб'яўлены стабільным CertificateSigningRequest API.
  • Падтрымка платформы Windows.

Крыніца: opennet.ru

Дадаць каментар