Ця стаття була опублікована більше року тому. Старіші статті можуть містити застарілу інформацію. Перевірте, чи інформація на цій сторінці не втратила актуальності з моменту її публікації.

Kubernetes v1.32: Penelope

Редактори: Matteo Bianchi, Edith Puclla, William Rizzo, Ryota Sawada, Rashan Smith

Анонсуємо випуск Kubernetes v1.32: Penelope!

Як і попередні випуски, Kubernetes v1.32 представляє нові стабільні, бета- та альфа-функції. Послідовне постачання високоякісних випусків підкреслює силу нашого циклу розробки та активну підтримку нашої спільноти. Загалом цей випуск містить 44 удосконалення. З них 13 перейшли до стабільної версії, 12 — до бета-версії, а 19 зʼявилися в альфа-версії.

Темою випуску Kubernetes v1.32 є «Penelope».

Якщо Kubernetes з давньогрецької означає «лоцман», то в цьому випуску ми відштовхуємося від цього походження і розмірковуємо про останні 10 років Kubernetes і наші досягнення: кожен цикл випуску — це подорож, і так само як Пенелопа в «Одіссеї» ткала 10 років, щоночі розпускаючи частину того, що зробила за день, кожен випуск додає нові функції та вилучає інші, хоча в нашому випадку з набагато чіткішою метою — постійно покращувати Kubernetes. Оскільки v1.32 є останнім випуском у році, коли Kubernetes відзначає своє перше десятиріччя, ми хотіли вшанувати всіх тих, хто був частиною глобального екіпажу Kubernetes, що мандрує хмарними (cloud-native) морями, долаючи небезпеки та виклики: тож продовжуймо разом ткати майбутнє Kubernetes.

Оновлення останніх ключових функцій

Примітка щодо удосконалень DRA

У цьому випуску, як і в попередньому, проєкт Kubernetes продовжує пропонувати низку удосконалень динамічного виділення ресурсів (Dynamic Resource Allocation, DRA), ключового компонента системи керування ресурсами Kubernetes. Ці удосконалення спрямовані на підвищення гнучкості та ефективності виділення ресурсів для робочих навантажень, які потребують спеціалізованого обладнання, такого як графічні процесори (GPU), FPGA та мережеві адаптери. Ці функції особливо корисні для таких сценаріїв використання, як машинне навчання або застосунки високопродуктивних обчислень. Основна частина, що забезпечує підтримку структурованих параметрів DRA, перейшла до бета-версії.

Покращення якості життя на вузлах та оновлення sidecar-контейнерів

SIG Node має такі основні новини, що виходять за межі KEP:

  1. Можливість сторожового таймера (watchdog) systemd тепер використовується для перезапуску kubelet, коли його перевірка стану не вдається, одночасно обмежуючи максимальну кількість перезапусків протягом певного періоду часу. Це підвищує надійність роботи kubelet. Докладніше дивіться pull request #127566.

  2. У випадках, коли виникає помилка відстрочки витягування образу (image pull back-off), повідомлення, що відображається у статусі Podʼа, покращено, щоб зробити його зрозумілішим для людини і вказати подробиці про те, чому Pod перебуває у такому стані. Коли виникає відстрочка витягування образу, помилка додається до поля status.containerStatuses[*].state.waiting.message у специфікації Podʼа зі значенням ImagePullBackOff у полі reason. Ця зміна надає вам більше контексту і допомагає визначити першопричину проблеми. Докладніше дивіться pull request #127918.

  3. Функція sidecar-контейнерів має перейти до стабільної версії у v1.33. Щоб переглянути решту робочих завдань та відгуки користувачів, дивіться коментарі в тікеті #753.

Ключові функції, що переходять до стабільної версії

Це добірка деяких покращень, які стали стабільними після випуску v1.32.

Селектори полів для Custom Resource

Селектор полів власних ресурсів дозволяє розробникам додавати селектори полів до власних ресурсів, аналогічно до функціональності, доступної для вбудованих обʼєктів Kubernetes. Це дозволяє ефективніше і точніше фільтрувати власні ресурси, сприяючи кращим практикам проєктування API.

Ця робота була виконана в рамках KEP #4358, силами SIG API Machinery.

Підтримка визначення розміру томів у памʼяті

Ця функція дозволяє динамічно визначати розмір томів, що зберігаються в памʼяті, на основі обмежень ресурсів Podʼа, покращуючи переносність робочого навантаження та загальне використання ресурсів вузла.

Ця робота була виконана в рамках KEP #1967, силами SIG Node.

Покращення токена привʼязаного службового облікового запису

Включення імені вузла до тверджень (claims) токенів службових облікових записів дозволяє користувачам використовувати цю інформацію під час авторизації та допуску (ValidatingAdmissionPolicy). Крім того, це покращення не дає обліковим даним службових облікових записів стати шляхом для підвищення привілеїв для вузлів.

Ця робота була виконана в рамках KEP #4193 силами SIG Auth.

Структурована конфігурація авторизації

В API-сервері можна налаштувати декілька авторизаторів, щоб забезпечити структуровані рішення щодо авторизації, з підтримкою умов відповідності CEL у вебхуках. Ця робота була виконана в рамках KEP #3221 силами SIG Auth.

Автоматичне видалення PVC, створених StatefulSet

PersistentVolumeClaims (PVC), створені StatefulSet, автоматично видаляються, коли вони більше не потрібні, забезпечуючи при цьому збереження даних під час оновлень StatefulSet і обслуговування вузлів. Ця функція спрощує керування сховищем для StatefulSet і зменшує ризик появи «осиротілих» PVC.

Ця робота була виконана в рамках KEP #1847 силами SIG Apps.

Ключові функції, що переходять до бета-версії

Це добірка деяких покращень, які стали бета-версією після випуску v1.32.

Механізм managed-by в Job API

Поле managedBy для Job перейшло до бета-версії у випуску v1.32. Ця функція дозволяє зовнішнім контролерам (наприклад, Kueue) керувати синхронізацією Job, пропонуючи більшу гнучкість та інтеграцію з розвиненими системами керування робочими навантаженнями.

Ця робота була виконана в рамках KEP #4368, силами SIG Apps.

Дозвіл анонімної автентифікації лише для налаштованих точок доступу

Ця функція дозволяє адміністраторам вказати, які точки доступу дозволено використовувати для анонімних запитів. Наприклад, адміністратор може дозволити анонімний доступ лише до таких точок контролю справності, як /healthz, /livez і /readyz, при цьому не допускаючи анонімного доступу до інших точок доступу або ресурсів кластера, навіть якщо користувач неправильно налаштував RBAC.

Ця робота була виконана в рамках KEP #4633, силами SIG Auth.

Функції зворотного виклику для кожного втулка для точного повторного додавання в чергу в удосконаленнях kube-scheduler

Ця функція підвищує пропускну здатність планування завдяки ефективнішим рішенням щодо повторних спроб планування за допомогою функцій зворотного виклику для кожного втулка (QueueingHint). Тепер усі втулки мають QueueingHints.

Ця робота була виконана в рамках KEP #4247, силами SIG Scheduling.

Відновлення після збою розширення тому

Ця функція дозволяє користувачам відновитися після невдалої спроби розширення тому, повторивши спробу з меншим розміром. Це удосконалення гарантує, що розширення тому буде більш стійким і надійним, зменшуючи ризик втрати або пошкодження даних під час цього процесу.

Ця робота була виконана в рамках KEP #1790, силами SIG Storage.

Знімок групи томів

Ця функція представляє API VolumeGroupSnapshot, який дозволяє користувачам робити знімок кількох томів разом, забезпечуючи узгодженість даних у всіх томах.

Ця робота була виконана в рамках KEP #3476, силами SIG Storage.

Підтримка структурованих параметрів

Основна частина динамічного виділення ресурсів (Dynamic Resource Allocation, DRA), підтримка структурованих параметрів, перейшла до бета-версії. Це дозволяє kube-scheduler та Cluster Autoscaler моделювати виділення заявок безпосередньо, без потреби у сторонньому драйвері. Тепер ці компоненти можуть передбачати, чи можуть запити на ресурси бути виконані на основі поточного стану кластера, без фактичної фіксації виділення. Усуваючи потребу в сторонньому драйвері для перевірки або тестування виділень, ця функція покращує планування і прийняття рішень щодо розподілу ресурсів, роблячи процеси планування і масштабування ефективнішими.

Ця робота була виконана в рамках KEP #4381, силами WG Device Management (міжфункціональної команди, що складається з SIG Node, SIG Scheduling та SIG Autoscaling).

Авторизація за селекторами міток і полів

Селектори міток і полів можна використовувати у рішеннях щодо авторизації. Авторизатор вузлів автоматично використовує це, щоб дозволити вузлам отримувати перелік (list) або відстежувати (watch) лише їхні Podʼи. Авторизатори вебхуків можна оновити, щоб обмежувати запити на основі використаного селектора міток або полів.

Ця робота була виконана в рамках KEP #4601 силами SIG Auth.

Ключові нові функції в альфа-версії

Це добірка ключових покращень, представлених як альфа-функції у випуску v1.32.

Асинхронне витіснення у планувальнику Kubernetes

Планувальник Kubernetes було вдосконалено за допомогою функції асинхронного витіснення, яка покращує пропускну здатність планування, обробляючи операції витіснення асинхронно. Витіснення гарантує, що Podʼи з вищим пріоритетом отримують необхідні їм ресурси шляхом виселення Podʼів з нижчим пріоритетом, але раніше цей процес включав важкі операції, такі як виклики API для видалення Podʼів, що сповільнювало роботу планувальника. Завдяки цьому удосконаленню такі завдання тепер обробляються паралельно, що дозволяє планувальнику без затримок продовжувати планувати інші Podʼи. Це покращення особливо корисне для кластерів з високим рівнем плинності Podʼів або частими збоями планування, забезпечуючи ефективніший та стійкіший процес планування.

Ця робота була виконана в рамках KEP #4832 силами SIG Scheduling.

Мутаційні політики допуску з використанням виразів CEL

Ця функція використовує створення обʼєктів у CEL та стратегії JSON Patch у поєднанні з алгоритмами злиття Server Side Apply. Це спрощує визначення політик, зменшує конфлікти мутацій і підвищує продуктивність контролю допуску, закладаючи основу для більш надійних, розширюваних фреймворків політик у Kubernetes.

API-сервер Kubernetes тепер підтримує мутаційні політики допуску (Mutating Admission Policies) на основі Common Expression Language (CEL), що забезпечує легку та ефективну альтернативу мутаційним вебхукам допуску. Завдяки цьому удосконаленню адміністратори можуть використовувати CEL для оголошення мутацій, таких як встановлення міток, встановлення типових значень полів або додавання sidecar-контейнерів, за допомогою простих декларативних виразів. Такий підхід зменшує операційну складність, усуває потребу у вебхуках та інтегрується безпосередньо з kube-apiserver, пропонуючи швидшу та надійнішу обробку мутацій в межах процесу.

Ця робота була виконана в рамках KEP #3962 силами SIG API Machinery.

Специфікації ресурсів на рівні Podʼа

Це удосконалення спрощує керування ресурсами в Kubernetes, надаючи можливість встановлювати запити на ресурси та обмеження на рівні Podʼа, створюючи спільний пул, який можуть динамічно використовувати всі контейнери в Podʼі. Це особливо цінно для робочих навантажень з контейнерами, які мають мінливі або пікові потреби в ресурсах, оскільки це мінімізує надлишкове резервування і покращує загальну ефективність використання ресурсів.

Використовуючи налаштування Linux cgroup на рівні Podʼа, Kubernetes гарантує дотримання цих обмежень ресурсів, дозволяючи тісно повʼязаним контейнерам ефективніше співпрацювати без штучних обмежень. Важливо, що ця функція зберігає зворотну сумісність з наявними налаштуваннями ресурсів на рівні контейнерів, дозволяючи користувачам впроваджувати її поступово, не порушуючи поточні робочі процеси або наявні конфігурації.

Це значне покращення для багатоконтейнерних Podʼів, оскільки воно зменшує операційну складність керування виділенням ресурсів між контейнерами. Це також забезпечує приріст продуктивності для тісно інтегрованих застосунків, таких як архітектури sidecar, де контейнери спільно виконують робочі навантаження або залежать від доступності один одного для оптимальної роботи.

Ця робота була виконана в рамках KEP #2837 силами SIG Node.

Дозвіл нульового значення для дії sleep хука PreStop

Це удосконалення надає можливість встановити нульову тривалість sleep для хука життєвого циклу PreStop у Kubernetes, пропонуючи гнучкіший варіант без операцій (no-op) для перевірки та налаштування ресурсів. Раніше спроба визначити нульове значення для дії sleep призводила до помилок валідації, що обмежувало її використання. З цим оновленням користувачі можуть налаштувати нульову тривалість як допустиме значення sleep, що дозволяє негайне виконання та завершення там, де це потрібно.

Це удосконалення є зворотно сумісним, його впроваджено як функцію, яку вмикають за бажанням (opt-in) і якою керує функціональна можливість PodLifecycleSleepActionAllowZero. Ця зміна особливо корисна для сценаріїв, що вимагають використання хуків PreStop для перевірки або обробки вебхуків допуску, не вимагаючи фактичної тривалості sleep. Завдяки узгодженню з можливостями функції Go time.After це оновлення спрощує конфігурацію і розширює можливості використання для робочих навантажень Kubernetes.

Ця робота була виконана в рамках KEP #4818 силами SIG Node.

DRA: Стандартизовані дані мережевого інтерфейсу для статусу заявки на ресурс

Це удосконалення додає нове поле, яке дозволяє драйверам повідомляти конкретні дані про стан пристрою для кожного виділеного обʼєкта в ResourceClaim. Воно також встановлює стандартизований спосіб представлення інформації про мережеві пристрої.

Ця робота була виконана в рамках KEP #4817, силами SIG Network.

Нові точки доступу statusz та flagz для основних компонентів

Ви можете ввімкнути дві нові HTTP-точки доступу, /statusz і /flagz, для основних компонентів. Вони покращують можливості налагодження кластера, надаючи інформацію про те, з якою версією (наприклад, версією Golang) працює компонент, а також про час його роботи і з якими прапорцями командного рядка його було запущено; це полегшує діагностику як проблем виконання, так і проблем конфігурації.

Ця робота була виконана в рамках KEP #4827 та KEP #4828 силами SIG Instrumentation.

Windows дає відсіч!

Додано підтримку належного завершення роботи Windows-вузлів у кластерах Kubernetes. До цього випуску Kubernetes надавав функціональність належного завершення роботи для вузлів Linux, але не мав еквівалентної підтримки для Windows. Це удосконалення дозволяє kubelet на Windows-вузлах правильно обробляти події вимкнення системи. Завдяки цьому Podʼи, запущені на Windows-вузлах, належно завершуються, що дозволяє перепланувати робочі навантаження без порушень. Це покращення підвищує надійність і стабільність кластерів, що включають вузли Windows, особливо під час планового обслуговування або будь-яких оновлень системи.

Крім того, додано підтримку спорідненості процесорів і памʼяті для вузлів Windows з вузлами, з поліпшеннями в диспетчері процесорів, диспетчері памʼяті і диспетчері топології.

Ця робота була виконана відповідно в рамках KEP #4802 та KEP #4885 силами SIG Windows.

Переходи, застарівання та вилучення у 1.32

Переходи до стабільної версії

Тут перелічено всі функції, які перейшли до стабільної версії (також відомої як загальна доступність). Повний список оновлень, включно з новими функціями та переходами з альфа-версії до бета-версії, наведено у примітках до випуску.

Цей випуск містить загалом 13 удосконалень, що перейшли до стабільної версії:

Застарівання та вилучення

У міру розвитку та зрілості Kubernetes функції можуть бути визнані застарілими, вилучені або замінені кращими для покращення загального стану проєкту. Докладніше про цей процес дивіться у політиці застарівання та вилучення Kubernetes.

Відмова від старої реалізації DRA

Удосконалення #3063 запровадило динамічне виділення ресурсів (DRA) у Kubernetes 1.26.

Однак у Kubernetes v1.32 цей підхід до DRA буде суттєво змінено. Код, повʼязаний з оригінальною реалізацією, буде вилучено, залишивши KEP #4381 як «нову» базову функціональність.

Рішення про зміну наявного підходу виникло через його несумісність з автомасштабуванням кластера, оскільки доступність ресурсів була непрозорою, що ускладнювало прийняття рішень як для Cluster Autoscaler, так і для контролерів. Нещодавно додана модель структурованих параметрів замінює цю функціональність.

Це вилучення дозволить Kubernetes більш передбачувано обробляти нові вимоги до апаратного забезпечення та заявки на ресурси, оминаючи складнощі численних викликів API до kube-apiserver і назад.

Щоб дізнатися більше, дивіться тікет удосконалення #3063.

Вилучення API

У Kubernetes v1.32 вилучено один API:

  • Вилучено версію API flowcontrol.apiserver.k8s.io/v1beta3 для FlowSchema та PriorityLevelConfiguration. Щоб підготуватися до цього, ви можете відредагувати наявні маніфести та переписати клієнтське програмне забезпечення для використання версії flowcontrol.apiserver.k8s.io/v1 API, доступної починаючи з v1.29. Усі наявні збережені обʼєкти доступні через новий API. Серед помітних змін у flowcontrol.apiserver.k8s.io/v1beta3 — поле PriorityLevelConfiguration spec.limited.nominalConcurrencyShares типово отримує значення 30 лише тоді, коли його не вказано, а явне значення 0 не змінюється на 30.

Для отримання додаткової інформації зверніться до посібника із застарівання API.

Примітки до випуску та необхідні дії для оновлення

Ознайомтеся з повною інформацією про випуск Kubernetes v1.32 у наших примітках до випуску.

Доступність

Kubernetes v1.32 доступний для завантаження на GitHub або на сторінці завантаження Kubernetes.

Щоб розпочати роботу з Kubernetes, перегляньте ці інтерактивні підручники або запустіть локальні кластери Kubernetes за допомогою minikube. Ви також можете легко встановити v1.32 за допомогою kubeadm.

Команда випуску

Kubernetes можливий лише завдяки підтримці, відданості та наполегливій праці його спільноти. Кожна команда випуску складається з відданих волонтерів спільноти, які працюють разом над створенням багатьох частин, що складають випуски Kubernetes, на які ви покладаєтесь. Це вимагає спеціалізованих навичок людей з усіх куточків нашої спільноти, від самого коду до його документації та управління проєктом.

Ми хотіли б подякувати всій команді випуску за години напруженої роботи над тим, щоб випуск Kubernetes v1.32 дійшов до нашої спільноти. Склад команди випуску варіюється від тих, хто вперше став помічником (shadow), до керівників команд, які повертаються з досвідом, здобутим протягом кількох циклів випуску. Особлива подяка нашому керівнику випуску, Frederico Muñoz, за те, що він так витончено керував командою випуску і вирішував будь-які питання з максимальною ретельністю, забезпечуючи гладке та ефективне проведення цього випуску. І останнє, але не менш важливе: велика подяка всім учасникам випуску — як керівникам, так і помічникам — а також наступним SIG за приголомшливу роботу і результати, досягнуті за ці 14 тижнів роботи над випуском:

  • SIG Docs — за фундаментальну підтримку в рецензуванні документації та блогів, а також за постійну співпрацю з командами комунікацій (Comms) і документації (Docs) випуску;
  • SIG k8s Infra та SIG Testing — за видатну роботу з підтримки фреймворку тестування в належному стані, а також усіх необхідних компонентів інфраструктури;
  • SIG Release та всім менеджерам випуску — за неймовірну підтримку, надану протягом усього процесу оркестрування випуску, та вирішення навіть найскладніших питань витончено і своєчасно.

Швидкість реалізації проєкту

CNCF K8s проєкт DevStats обʼєднує низку цікавих даних, повʼязаних зі швидкістю розвитку Kubernetes та різних підпроєктів. Це включає в себе все, від індивідуальних внесків до кількості компаній, які беруть участь, і є ілюстрацією глибини і широти зусиль, які докладаються для розвитку цієї екосистеми.

У циклі випуску v1.32, який тривав 14 тижнів (з 9 вересня по 11 грудня), ми бачили внески в Kubernetes від 125 різних компаній і 559 окремих осіб на момент написання цієї статті.

У всій екосистемі Cloud Native ця цифра зростає до 433 компаній із загальною кількістю учасників 2441. Це на 7% більше загального внеску порівняно з циклом попереднього випуску, а кількість залучених компаній зросла на 14%, що свідчить про значний інтерес до проєктів Cloud Native і сильну спільноту, яка стоїть за ними.

Джерело цих даних:

Під внеском ми маємо на увазі, коли хтось робить коміт, рецензує код, коментує, створює тікет або PR, рецензує PR (включно з блогами і документацією) або коментує тікети і PR.

Якщо ви зацікавлені у внеску, відвідайте сторінку Початок роботи на нашому сайті для учасників.

Перегляньте DevStats, щоб дізнатися більше про загальну швидкість роботи проєкту та спільноти Kubernetes.

Новини про події

Ознайомтеся з майбутніми подіями Kubernetes та cloud-native з березня по червень 2025 року, зокрема з KubeCon та KCD. Залишайтеся в курсі подій та долучайтеся до спільноти Kubernetes.

Березень 2025

Квітень 2025

Травень 2025

Червень 2025

Найближчий вебінар про випуск

Приєднуйтесь до учасників команди випуску Kubernetes v1.32 у четвер, 9 січня 2025 року о 17:00 (UTC), щоб дізнатися про основні моменти цього випуску, а також про застарівання та вилучення, що допоможе спланувати оновлення. Для отримання додаткової інформації та реєстрації відвідайте сторінку події на сайті CNCF Online Programs.

Долучайтеся

Найпростіший спосіб долучитися до Kubernetes — приєднатися до однієї з багатьох груп за інтересами (Special Interest Groups) (SIG), які відповідають вашим інтересам. Маєте щось, про що хотіли б розповісти спільноті Kubernetes? Поділіться своєю думкою на нашій щотижневій зустрічі спільноти, а також за допомогою каналів нижче. Дякуємо за ваші постійні відгуки та підтримку.

  • Слідкуйте за нами у Bluesky @Kubernetes.io, щоб отримувати останні оновлення
  • Приєднуйтесь до обговорення спільноти на Discuss
  • Приєднуйтесь до спільноти у Slack
  • Ставте питання (або відповідайте на них) на Stack Overflow
  • Поділіться своєю історією про Kubernetes
  • Дізнайтеся більше про те, що відбувається з Kubernetes, у блозі
  • Дізнайтеся більше про команду випуску Kubernetes
Змінено November 05, 2026 at 6:21 PM PST: [uk] Add blog post: Kubernetes v1.32 release announcement (32ff3771a6)