Релиз на 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 group за Ingress на networking.v1beta1.
    • Добавени са нови полета:
      • pathType, позволяващо да се укаже по какъв начин ще се сравнява пътят в заявката
      • IngressClassName — замяна на анотацията kubernetes.io/ingress.class, която е обявена за deprecated. В това поле се указва името на специалния обект IngressClass
    • Добавен обект IngressClass, в който се указва името на ингресс контролера, неговите допълнителни параметри и знак за използването му по подразбиране
  • Service
    • Добавено поле 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