Издание на Kubernetes 1.18, система за управление на клъстери от изолирани контейнери

Публикувано платформа за оркестрация на контейнери Kubernetes 1.18, която позволява управлението на клъстера от изолирани контейнери като едно цяло и предоставя механизми за разгръщане, поддръжка и мащабиране на приложения, изпълнявани в контейнери. Проектът първоначално е създаден от Google, но след това е преместен на независима платформа, кюртирана от Linux Foundation. Платформата е позиционирана като универсално решение с отворен код, което не е привързано към отделни системи и може да работи с всякакви приложения в различни облачни среди. Кодът на Kubernetes е написан на език Go и разпространява е под лицензия Apache 2.0.

предоставя функции за разгръщане и управление на инфраструктурата, включително поддържане на DNS база, балансировка на натоварването,
разпределение на контейнерите между възлите на клъстера (миграция на контейнери в зависимост от промените в натоварването и необходимостите от услуги), проверка на здравето на приложния слой, управление на акаунти, актуализиране и динамично мащабиране на работещия клъстер без прекъсване. Възможно е разгръщане на групи контейери с извършване на операции по актуализиране и отмяна на промени едновременно за цялата група, както и логично разделяне на клъстера на части с разделение на ресурси. Има поддръжка за динамична миграция на приложения, за съхранение на данни, за които могат да се използват както локални, така и мрежови системи за съхранение.

Изданието на Kubernetes 1.18 включва 38 изменения и подобрения, от които 15 са преместени в статус стабилен, а 11 в статус бета. 12 нови изменения са предложени в статус алфа. При подготовката на новата версия значителни усилия са били насочени както към доработване и стабилизиране на различната функционалност, така и към добавяне на нови разработки. Основните промени:

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

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster