пуск на платформата за оркестрация на контейнери , която позволява управление на клъстери от изолирани контейнери като едно цяло и предоставя механизми за разгръщане, поддръжка и мащабиране на приложенията, работещи в контейнерите. Проектът първоначално е създаден от компанията 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.
- Мрежа
- IPv6 е преминала в статус бета.
- Постоянни дискове. Обявена е стабилна следната функционалност:
- Конфигуриране на приложението
- В обектите ConfigMap и Secret ново поле «immutable». Установяването на стойността на полето на true забранява промяната на обекта.
- Два забележителни изменения в планирането (и двете в алфа версия):
- възможност за създаване на допълнителни профили за kube-scheduler. Ако преди беше необходимо да се стартират допълнителни отделни планировчици за реализиране на нестандартни алгоритми за разпределение на подовете, сега се появи възможността да се създадат допълнителни набори настройки за стандартния планировчик и да се укаже името му в същото поле на пода «.spec.schedulerName». Статус — алфа.
- обявена стабилна
- Мащабиране
- възможност за указване в манифеста HPA степента на агресивност при промяна на броя на стартираните подове, тоест при увеличение на натоварването да се стартират веднага N пъти повече екземпляри (instance).
- Kubelet
- получи статус бета. Функцията включва NUMA-разпределение, което позволява да се избегне деградацията на производителността на много-сокетни системи.
- Статус бета функция PodOverhead, позволяваща да се укаже в RuntimeClass допълнителното количество ресурси, необходимо за стартиране на пода.
- поддръжка на HugePages, в алфа статус е добавена изолация на контейнерно ниво и поддръжка на няколко размера hugepages.
- endpoint за метрики /metrics/resource/v1alpha1, вместо него се използва /metrics/resource
- API
- премахвана е възможността за използване на остарелите API групи apps/v1beta1 и extensions/v1beta1.
- повишен до бета2 статус. Това подобрение прехвърля манипулацията на обектите от kubectl в API-сервер. Авторите на подобрението твърдят, че това ще позволи решаване на многобройни съществуващи грешки, които не могат да бъдат коригирани в текущата ситуация. Освен това добавиха раздел ".metadata.managedFields", в който предлагат да се съхранява историята на промените на обекта, с указание кой, когато и какво точно е променил.
- категоричен CertificateSigningRequest API.
- Поддръжка на платформата Windows.
- Продължава да се разширява поддръжката на Windows node. Добавени са алфа версии:
- В статуса на стабилни е преведена поддръжката
- Продължава да се разширява поддръжката на Windows node. Добавени са алфа версии:
Източник: opennet.ru
