Випуск 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).
  • Кубелет
    • Менеджер топології набув статусу бета. Функція включає 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

Додати коментар або відгук