<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kubernetes Blog</title>
    <link>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/</link>
    <description>The Kubernetes blog is used by the project to communicate new features, community reports, and any news that might be relevant to the Kubernetes community.</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>uk</language>
    <image>
      <url>https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png</url>
      <title>The Kubernetes project logo</title>
      <link>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/</link>
    </image>
    
    <atom:link href="https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/feed.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Kubernetes v1.37: Garhwal</title>
      <link>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2026/08/26/kubernetes-v1-37-release/</link>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2026/08/26/kubernetes-v1-37-release/</guid>
      <description>
        
        
        &lt;p&gt;&lt;strong&gt;Редактори:&lt;/strong&gt; Arsh Sharma, Christopher Tineo, Kirti Goyal, Sophia Ugochukwu, Swathi Rao, Troy Connor&lt;/p&gt;
&lt;p&gt;Подібно до попередніх випусків, реліз Kubernetes v1.37 представляє нові стабільні, бета- та альфа-функції. Постійний випуск високоякісних версій підкреслює силу нашого циклу розробки та активну підтримку з боку нашої спільноти.&lt;/p&gt;
&lt;p&gt;Цей випуск складається з 67 вдосконалень. З них 16 стали стабільними, 23 переходять у бета-версію, 27 стали альфа-функціями, а 1 функція визнана застарілою.&lt;/p&gt;
&lt;h2 id=&#34;release-theme-and-logo&#34;&gt;Тема та логотип релізу&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-theme-and-logo&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;figure class=&#34;release-logo &#34;&gt;
    &lt;img src=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/blog/2026/08/26/kubernetes-v1-37-release/k8s-v1.37.svg&#34;
         alt=&#34;Логотип версії Kubernetes v1.37 «Garhwal»: плетена рамка, виконана у стилі «рингаал», оточує засніжені вершини Гімалаїв, терасові поля, дерева деодар, звивисту річку, гірський будинок із позначкою 1.37, барвисті прапори, гімалайського монала та червоні квіти буранш із символами шолома Kubernetes у їхньому центрі&#34;/&gt; 
&lt;/figure&gt;
&lt;p&gt;Темою для Kubernetes v1.37 є &lt;strong&gt;Гарвал&lt;/strong&gt; (गढ़वाल, вимовляється як &lt;em&gt;gaṛhvāl&lt;/em&gt;) — гімалайський регіон штату Уттаракханд, Індія. Засніжені вершини Гімалаїв у Гарвалі, ліси деодара, терасові поля, річки та струмки, а також гірські стежки формують як сам регіон, так і логотип. Усі ці елементи разом відображають спільноту, в якій кожен шар, кожен шлях і кожен внесок пов’язані між собою.&lt;/p&gt;
&lt;p&gt;Логотип уявляється як вікно в пейзаж Гарвалу.&lt;sup&gt;1&lt;/sup&gt; Всередині терасові поля піднімаються до засніжених вершин, кожен рівень підтримується тим, що нижче, так само як кожен випуск Kubernetes залежить від роботи, виконаної раніше. Річка звивається долиною і збирає гірські потоки, відображаючи внески багатьох SIG та спільнот, що об’єднуються в один проєкт.&lt;/p&gt;
&lt;p&gt;Деодаровий ліс — це ширша екосистема Kubernetes, де різні проєкти ділять спільну основу та ростуть пліч-о-пліч. Камʼяна кладка та деревʼяні конструкції формують стежку та гірський будинок, ставлячи людей у центр і викликаючи спільні основи, підтримувані для тих, хто йде слідом. Над річкою барвисті прапори ловлять вітер і оживляють сцену.&lt;/p&gt;
&lt;p&gt;Сцену оточує фігурний каркас, натхненний кошикарством із &lt;em&gt;рингаала&lt;/em&gt; — гнучкого карликового гімалайського бамбука. Окремі смужки набувають міцності, коли їх переплітають, так само як код, ревізії, тести, документація та координація об’єднуються для створення релізу.&lt;/p&gt;
&lt;p&gt;У рамці зображений &lt;a href=&#34;https://en.wikipedia.org/wiki/Himalayan_monal&#34;&gt;гімалайський монал&lt;/a&gt; — державний птах штату Уттаракханд, який мешкає на великих висотах у Гімалаях. Його райдужне пірʼя має безліч кольорів одночасно, подібно до того, як спільнота Kubernetes об’єднує різноманітні навички та погляди в одному проєкті. Квіти червоного буранша (Rhododendron arboreum), державного дерева штату Уттаракханд, мають у центрі символи Kubernetes, поєднуючи знайомий цвіт Гархвала із символом, який поділяє спільнота. На будинку зображено数字 १.३७ (1,37 у цифрах деванагарі), що вкорінює цей реліз у місцевий ландшафт.&lt;/p&gt;
&lt;p&gt;&lt;sub&gt;1. Продовжуйте дивитися у вікно (логотип). Спостерігайте, як тече річка і як прапори майоріють на вітрі. За 37 секунд пейзаж відкриє свою магію.. 😉&lt;/sub&gt;&lt;/p&gt;
&lt;h2 id=&#34;spotlight-on-key-updates&#34;&gt;Основні оновлення&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#spotlight-on-key-updates&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Kubernetes v1.37 насичений новими функціями та покращеннями. Ось кілька оновлень, які &lt;a href=&#34;https://github.com/kubernetes/sig-release/blob/master/releases/release-1.37/release-team.md&#34;&gt;Команда випуску&lt;/a&gt; хотіла б виділити!&lt;/p&gt;
&lt;h3 id=&#34;stable-resilient-watchcache-initialization&#34;&gt;Stable: Стійка ініціалізація watchcache&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#stable-resilient-watchcache-initialization&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 завершує роботу над &lt;em&gt;стійкою ініціалізацією watchcache&lt;/em&gt;: функціональна можливість &lt;code&gt;ResilientWatchCacheInitialization&lt;/code&gt; досягла стану Stable ще в v1.34, а в v1.37 інша функціональна можливість &lt;code&gt;WatchCacheInitializationPostStartHook&lt;/code&gt; переходить у Stable і заблокована. З v1.36 вона стандартно увімкнена, що посилює API-сервер при старті та під час відновлення. Ініціалізація та повторна ініціалізація watchcache більше не створюють стрибка трафіку запитів до &lt;code&gt;etcd&lt;/code&gt;, а запити обробляються коректно замість накопичення під час прогрівання кешу.&lt;/p&gt;
&lt;p&gt;Щоб уникнути надмірного навантаження &lt;code&gt;etcd&lt;/code&gt; або вичерпання можливостей механізмів API Priority та Fairness через дорогі запити типу «list» та «watch», &lt;code&gt;kube-apiserver&lt;/code&gt; тепер безпечно делегує запити з обмеженим обсягом, а інші відхиляє, повертаючи відповіді HTTP 429. Це знижує ризик відмови панелі управління у великих кластерах. Клієнти (включно з власними контролерами та операторами) мають коректно обробляти відповіді HTTP &lt;code&gt;429 Too Many Requests&lt;/code&gt;, дотримуючись заголовків &lt;code&gt;Retry-After&lt;/code&gt; та використовуючи експоненційну затримку.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4568/&#34;&gt;KEP #4568&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;beta-horizontalpodautoscaler-scale-to-zero&#34;&gt;Beta: Масштабування HorizontalPodAutoscaler до нуля&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#beta-horizontalpodautoscaler-scale-to-zero&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes v1.37 підтримка &lt;em&gt;масштабування до нуля&lt;/em&gt; для HorizontalPodAutoscaler переходить у Beta. Вперше представлена в Kubernetes v1.16, вона тепер &lt;strong&gt;стандартно увімкнена&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Для робочих навантажень, що використовують метрики обʼєктів або зовнішні метрики, ця функція дозволяє HorizontalPodAutoscaler масштабуватися до нуля Podʼів у стані простою, а потім відновлювати їх, коли попит повертається. Це може знизити витрати для обробників черг, пакетних завдань та навантажень з GPU.&lt;/p&gt;
&lt;p&gt;Масштабування до нуля на основі метрик CPU та памʼяті &lt;strong&gt;не підтримується&lt;/strong&gt;, оскільки ці метрики залежать від активних Podʼів. Натомість ця функція призначена для сценаріїв, коли кількість реплік залишається нульовою, доки не зʼявиться робота в черзі для обробки.&lt;/p&gt;
&lt;p&gt;Поки HorizontalPodAutoscaler утримує робоче навантаження з нульовою кількістю реплік, він фіксує стан &lt;code&gt;ScaledToZero&lt;/code&gt; зі значенням &lt;code&gt;True&lt;/code&gt; у статусі HorizontalPodAutoscaler. Контролер HorizontalPodAutoscaler потім використовує цей стан, щоб відрізнити робоче навантаження, яке він масштабував до нуля (і яке масштабується назад, коли показник повертається), від робочого навантаження, яке було вручну деактивоване встановленням кількості реплік у 0. Коли робоче навантаження масштабується назад, стан встановлюється у &lt;code&gt;False&lt;/code&gt; з причиною &lt;code&gt;NotScaledToZero&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/2021/&#34;&gt;KEP #2021&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/autoscaling/&#34;&gt;SIG Autoscaling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;beta-manifest-based-admission-control-configuration&#34;&gt;Beta: Конфігурація контролю допусків на основі маніфестів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#beta-manifest-based-admission-control-configuration&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 переводить конфігурацію &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/manifest-admission-control/&#34;&gt;контролю допусків на основі маніфестів&lt;/a&gt; у Beta. Admission webhooks та політики на основі CEL тепер можуть завантажуватися з маніфестів на диску через поле &lt;code&gt;staticManifestsDir&lt;/code&gt; у &lt;code&gt;AdmissionConfiguration&lt;/code&gt;, замість того, щоб існувати лише в Kubernetes API. Політики, завантажені таким чином, застосовуються з моменту запуску сервера API, продовжують діяти навіть під час недоступності &lt;code&gt;etcd&lt;/code&gt; і можуть захищати самі ресурси допуску на основі API від модифікації.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5793/&#34;&gt;KEP #5793&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;alpha-pod-level-checkpoint-and-restore&#34;&gt;Alpha: Контрольна точка та відновлення на рівні Podʼів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#alpha-pod-level-checkpoint-and-restore&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 представляє підтримку Alpha для &lt;strong&gt;контрольних точок та відновлення на рівні Podʼів&lt;/strong&gt;, розширюючи CRI за допомогою RPC &lt;code&gt;CheckpointPod&lt;/code&gt; та &lt;code&gt;RestorePod&lt;/code&gt;, які дозволяють kubelet та сумісним рушіям виконання контейнерів створювати контрольну точку Podʼа та відновлювати Podʼа з неї. Щоб використати цю функцію, середовище виконання контейнерів також має реалізувати ці нові RPC.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5823/&#34;&gt;KEP #5823&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-graduating-to-stable&#34;&gt;Функції, що переходять у стабільний стан&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features-graduating-to-stable&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Цей розділ перераховує всі функції, що перейшли в Stable (також відомий як стан &lt;em&gt;загальної доступності (GA, General Availability)&lt;/em&gt;). Для повного списку оновлень, включаючи нові функції та переходи з Alpha в Beta, дивіться примітки до випуску.&lt;/p&gt;
&lt;p&gt;Цей випуск включає загалом 16 вдосконалень, переведених у Stable:&lt;/p&gt;
&lt;h3 id=&#34;kyaml&#34;&gt;KYAML&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#kyaml&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;KYAML&lt;/em&gt; — це безпечніша та менш неоднозначна підмножина YAML, розроблена спеціально для Kubernetes, &lt;strong&gt;а не заміна для нього&lt;/strong&gt;. Кожен файл KYAML є валідним YAML, тож KYAML є валідним вхідним форматом для будь-якої версії &lt;code&gt;kubectl&lt;/code&gt;, а файли специфікацій не потрібно писати саме в KYAML, щоб їх можна було обробити. Ваші наявні маніфести, інструменти та конвеєри не потребують змін. KYAML вперше представлений як альфа-функція у v1.34 і перейшов у бета-версію в v1.35. KYAML переходить у стабільний стан у v1.37 після завершення тестування на відповідність, і команда &lt;code&gt;kubectl get -o kyaml&lt;/code&gt; тепер також є стабільною.&lt;/p&gt;
&lt;p&gt;Щоб дізнатися більше про KYAML, перегляньте допис &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/blog/2026/08/11/how-to-pretty-print-kubernetes-yaml-as-kyaml/&#34;&gt;«Як форматувати ваш Kubernetes YAML у форматі KYAML і навіщо це потрібно»&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5295/&#34;&gt;KEP #5295&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/cli/&#34;&gt;SIG CLI&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;the-metrics-k8s-io-api&#34;&gt;API metrics.k8s.io&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#the-metrics-k8s-io-api&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;API &lt;em&gt;metrics.k8s.io&lt;/em&gt; переходить у Stable в Kubernetes v1.37 після майже девʼяти років у Beta. API надає стандартний спосіб отримання відомостей про використання CPU та памʼяті для podʼів та вузлів, живлячи широко використовувані функції Kubernetes такі як HorizontalPodAutoscaler (HPA) та команди на кшталт &lt;code&gt;kubectl top&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Перехід відповідає цілі проєкту Kubernetes уникати постійних API у Beta. Тепер, коли &lt;code&gt;v1&lt;/code&gt; існує, майбутні випуски Kubernetes перейдуть на нього; &lt;code&gt;v1beta1&lt;/code&gt; залишається придатним для використання протягом переходу, відповідно до політики застарівання API, тому ви можете прийняти Stable API, не ламаючи існуючі робочі процеси.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5207/&#34;&gt;KEP #5207&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/instrumentation/&#34;&gt;SIG Instrumentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;selinuxmount-and-selinuxchangepolicy&#34;&gt;&lt;code&gt;SELinuxMount&lt;/code&gt; та &lt;code&gt;SELinuxChangePolicy&lt;/code&gt;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#selinuxmount-and-selinuxchangepolicy&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes v1.37 прапорці &lt;code&gt;SELinuxMount&lt;/code&gt; та &lt;code&gt;SELinuxChangePolicy&lt;/code&gt; переходять у Stable і стандартно ввімкнені: це означає, що томи монтуються з &lt;code&gt;-o context=&amp;lt;label&amp;gt;&lt;/code&gt; (типово MountOption) замість рекурсивного перейменування, але лише коли CSI драйвер тому обирає через &lt;code&gt;.spec.seLinuxMount: true&lt;/code&gt; для обʼєкта CSIDriver.&lt;/p&gt;
&lt;p&gt;Монтування може нести лише один контекст SELinux, тому &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/1710/#story-3-cluster-upgrade&#34;&gt;Podʼи з різними мітками SELinux, що разом використовують том на одному вузлі, які раніше співіснували під час рекурсивного перейменування, тепер можуть не запуститися&lt;/a&gt;. Щоб зберегти стару поведінку для роботи, рекомендується встановити &lt;code&gt;.spec.seLinuxChangePolicy&lt;/code&gt; у &lt;code&gt;Recursive&lt;/code&gt; для Pod.&lt;/p&gt;
&lt;p&gt;Ця поведінка сама по собі не заблокована до v1.38, тому відключення її на рівні кластера залишається варіантом на ще один випуск. Кластери без увімкненого SELinux не відчувають жодного ефекту. Щоб дізнатися більше, перегляньте &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/blog/2026/04/22/breaking-changes-in-selinux-volume-labeling/&#34;&gt;Зміни міток томів SELinux переходять у GA (і ймовірні наслідки в v1.37)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/1710/&#34;&gt;KEP #1710&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/storage/&#34;&gt;SIG Storage&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;dra-features-graduating-to-stable&#34;&gt;Функції DRA, що переходять у стабільний стан&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-features-graduating-to-stable&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id=&#34;dra-resourceclaim-status-with-possible-standardized-network-interface-data&#34;&gt;DRA: Статус ResourceClaim з можливими стандартизованими даними мережевого інтерфейсу&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-resourceclaim-status-with-possible-standardized-network-interface-data&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Статус &lt;code&gt;.status.devices&lt;/code&gt; ResourceClaim переходить у Stable в Kubernetes v1.37, що дозволяє драйверам повідомляти специфічні для пристрою дані статусу для кожного виділеного пристрою в заявці на ресурс. Це полегшує розуміння того, як налаштовано пристрій, усунення несправностей та використання пристрою разом з іншими сервісами.&lt;/p&gt;
&lt;p&gt;Це особливо корисно для мережевих пристроїв; до додавання цього поля, якщо Pod запитував мережевий пристрій через DRA, жоден інший компонент системи не мав можливості дізнатися IP-адресу, присвоєну цьому мережевому пристрою. Нове поле стану забезпечує стандартизований спосіб, за допомогою якого драйвер DRA може передавати цю інформацію компонентам, які її потребують, що робить DRA повністю придатним для підключення додаткових мережевих інтерфейсів до Podів.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4817/&#34;&gt;KEP #4817&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt; та &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/network/&#34;&gt;SIG Network&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-handle-extended-resource-requests-via-dra-driver&#34;&gt;DRA: обробка запитів розширених ресурсів через драйвер DRA&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-handle-extended-resource-requests-via-dra-driver&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Підтримка розширених ресурсів DRA переходить у Stable в Kubernetes v1.37. Ця функція дозволяє драйверам DRA задовольняти запити, зроблені через традиційний механізм &lt;em&gt;розширених ресурсів&lt;/em&gt;, наприклад &lt;code&gt;abc.example/gpu: 3&lt;/code&gt; у специфікації Podʼа, без необхідності окремого &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/&#34;&gt;втулка пристрою&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;За допомогою цього механізму імʼя розширеного ресурсу може бути призначене безпосередньо DeviceClass. Podʼи, що запитують цей ресурс, можуть мати пристрій, виділений через DRA, без необхідності визначати ResourceClaim у робочому навантаженні.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5004/&#34;&gt;KEP #5004&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-device-taints-and-tolerations&#34;&gt;DRA: позначки taint та toleration пристроїв&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-device-taints-and-tolerations&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Підтримка &lt;em&gt;taints&lt;/em&gt; та &lt;em&gt;tolerations&lt;/em&gt; для фізичних пристроїв, керованих через DRA, тепер є Stable в Kubernetes v1.37. Стандартно будь-який доступний пристрій може розглядатися для планування. Це вдосконалення надає більший контроль над плануванням пристроїв, дозволяючи драйверам DRA позначати конкретні пристрої позначкою taint, запобігаючи їхньому вибору для робочих навантажень. Крім того, адміністратори кластера можуть створити DeviceTaintRule для позначення пристроїв як taint на основі конкретних критеріїв відбору, наприклад, усіх пристроїв, керованих певним драйвером.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5055/&#34;&gt;KEP #5055&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-standard-numanode-device-attribute&#34;&gt;DRA: стандартний атрибут пристрою numaNode&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-standard-numanode-device-attribute&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Kubernetes v1.37 визначає новий стандартний &lt;em&gt;атрибут пристрою NUMA-вузла&lt;/em&gt;. Він стандартизує &lt;code&gt;resource.kubernetes.io/numaNode&lt;/code&gt; як спільне імʼя атрибуту для інформації про NUMA-вузол пристрою, дозволяючи пристроям, керованим різними драйверами DRA, порівнюватися на основі одного й того ж NUMA-вузла. Це дозволяє уникати ситуації, коли кожен драйвер визначає власну назву атрибуту, і надає послідовний спосіб ідентифікації NUMA-розміщення між пристроями. Це вдосконалення одразу переходить у стабільний стан, оскільки це KEP щодо іменування та реєстрації без функціональної можливості чи змін поведінки в кодовій базі.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6072/&#34;&gt;KEP #6072&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;node-declared-features&#34;&gt;Функції, оголошені вузлом&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#node-declared-features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Функції, оголошені вузлом&lt;/em&gt; переходять у Stable в Kubernetes v1.37, надаючи фреймворк для оголошення доступності конкретних, керованих функціональними можливостями функцій Kubernetes для вузлів. Ці функції потім використовуються компонентами панелі управління (такими як &lt;code&gt;kube-scheduler&lt;/code&gt;, контролери допуску або сам API-сервер) для керування розбіжністю версій (version skew).&lt;/p&gt;
&lt;p&gt;Функція вводить нове поле &lt;code&gt;.status.declaredFeatures&lt;/code&gt; для вузлів, яке використовується для оголошення функції, що проходить через етапи Alpha → Beta → Stable. Панель управління може використовувати це поле для забезпечення правильної роботи навіть у кластері, де одночасно працюють вузли з різними версіями.&lt;/p&gt;
&lt;p&gt;Коли функції переходять у Stable і панель управління може припустити, що всі вузли підтримують їх у межах вікна розбіжності версій, вузли припиняють повідомляти про них.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;kubelet&lt;/code&gt; визначає свої оголошені функції при запуску, базуючись лише на функціональних можливостях та статичній конфігурації вузла (отже, будь-які зміни вимагають перезапуску &lt;code&gt;kubelet&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5328/&#34;&gt;KEP #5328&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;storage-version-migrator&#34;&gt;Мігратор версій сховища&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#storage-version-migrator&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 переводить API &lt;em&gt;StorageVersionMigration&lt;/em&gt; (&lt;code&gt;storagemigration.k8s.io/v1&lt;/code&gt;) у Stable і стандартно його вмикає. Він допомагає виконувати мігрувацію наявних ресурсів, як вбудованих, так і власних ресурсів користувача, зі старішої версії сховища на нову після оновлення API, наприклад, коли бажана версія сховища змінюється з &lt;code&gt;v1beta1&lt;/code&gt; на &lt;code&gt;v1&lt;/code&gt;. Його також можна використати для перезапису наявних даних після зміни шифрування у стані спокою, щоб застарілі дані зберігалися з новими налаштуваннями шифрування.&lt;/p&gt;
&lt;p&gt;Історично адміністраторам кластерів та авторам CustomResourceDefinition доводилося використовувати ручні скрипти &lt;code&gt;kubectl get&lt;/code&gt; або &lt;code&gt;kubectl replace&lt;/code&gt;, або розгортати out-of-tree компонент &lt;code&gt;kube-storage-version-migrator&lt;/code&gt; для переписування наявних ресурсів. Ці підходи часто були важкими, схильними до помилок і важкими для моніторингу.&lt;/p&gt;
&lt;p&gt;Щоб розпочати міграцію версії сховища, користувачам потрібно створити декларативний обʼєкт StorageVersionMigration. Вбудований контролер &lt;code&gt;StorageVersionMigrator&lt;/code&gt; у панелі управління Kubernetes слідкує за цими обʼєктами і виконує автоматичну міграцію наявних ресурсів до базової версії сховищення для цього API. Оскільки StorageVersionMigration є стандартним Kubernetes API, автори CRD можуть запускати міграції як частину оновлення CRD замість окремого керування міграцією.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4192/&#34;&gt;KEP #4192&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;pod-certificates-and-clustertrustbundles&#34;&gt;Stable: Сертифікати Podʼів та Cluster Trust Bundles&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#pod-certificates-and-clustertrustbundles&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/certificate-signing-requests/#pod-certificate-requests&#34;&gt;Сертифікати Podʼів&lt;/a&gt; та тісно повʼязані &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/certificate-signing-requests/#cluster-trust-bundles&#34;&gt;ClusterTrustBundles&lt;/a&gt; обидва переходять у Stable в Kubernetes v1.37, надаючи першокласну підтримку для розповсюдження приватних ключів, X.509 сертифікатів та пакунків довіри до Podʼів.&lt;/p&gt;
&lt;p&gt;Щоб це використати, розробник або адміністратор обирає імʼя підписувача і розгортає &lt;em&gt;контролер підписувача&lt;/em&gt;, який спостерігає за обʼєктами PodCertificateRequest, видає та оновлює сертифікати для придатних Podʼів і підтримує відповідні обʼєкти ClusterTrustBundles, що містять довірчі точки (trust anchors), необхідні для перевірки цих сертифікатів. Робоче навантаження потім підключається до цієї ідентичності, визначаючи проєкційний том &lt;code&gt;podCertificate&lt;/code&gt; з обраним імʼям підписувача. Робочі навантаження також можуть монтувати проєкційний том ClusterTrustBundle для завантаження інформації про довірчі точки.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина двох KEP — &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4317/&#34;&gt;KEP #4317&lt;/a&gt; та &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/3257/&#34;&gt;KEP #3257&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/auth/&#34;&gt;SIG Auth&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-graduating-to-beta&#34;&gt;Функції, що перейшли в Beta&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features-graduating-to-beta&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;gang-scheduling-support-in-kubernetes&#34;&gt;Підтримка групового планування (Gang scheduling) в Kubernetes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#gang-scheduling-support-in-kubernetes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Оскільки Kubernetes стає де-факто стандартом для керування AI/ML навантаженнями в масштабі, планування таких робіт, як тренування AI/ML моделей та HPC-симуляції, стає важливішим ніж будь-коли. Однак планування стає викликом, оскільки стандартний планувальник Kubernetes планує Podʼи індивідуально, що може призвести до того, що деякі Podʼи плануються, тоді як інші залишаються у стані очікування через нестачу ресурсів. Таке часткове планування може призвести до взаємних блокувань (deadlock) та неефективного використання ресурсів кластера.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Групове планування (Gang scheduling)&lt;/em&gt; переходить у Beta в Kubernetes v1.37, вдосконалюючи нативну підтримку групового планування через Workload API та концепцію PodGroup. Ця функція реалізує стратегію планування «все або нічого», забезпечуючи, що визначена група Podʼів планується лише тоді, коли кластер має достатньо ресурсів для розміщення всієї групи. Перехід у Beta також вводить планування з урахуванням навантаження (workload-aware preemption), щоб уникнути передчасних витіснень, які не допомагають навантаженню просуватись в роботі, а також чергування PodGroup для кращої координації конкуруючих навантажень.&lt;/p&gt;
&lt;p&gt;Важливо, що це вирішує сценарії активного очікування (livelock), які можуть виникати, коли кілька навантажень плануються одночасно &lt;code&gt;kube-scheduler&lt;/code&gt;ʼом, запобігаючи їхньому взаємному блокуванню без прогресу.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4671/&#34;&gt;KEP #4671&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;native-histogram-support-for-kubernetes-metrics&#34;&gt;Нативна підтримка гістограм для метрик Kubernetes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#native-histogram-support-for-kubernetes-metrics&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes експонує сотні метрик-гістограм у &lt;a href=&#34;https://prometheus.io/docs/instrumenting/exposition_formats/&#34;&gt;форматі Prometheus&lt;/a&gt; у компонентах панелі управління, які є необхідними для моніторингу стану кластера та відстеження проблем продуктивності. Однак класичні гістограми Prometheus покладалися на статичні, заздалегідь визначені кошики (buckets), що змушувало йти на компроміс між точністю даних та використанням памʼяті. Для помʼякшення цього Prometheus представив &lt;em&gt;нативні гістограми&lt;/em&gt;, які використовують динамічні експоненційні межі кошиків замість фіксованих, забезпечуючи значну ефективність зберігання, покращену продуктивність запитів та детальнішу видимість розподілів, зберігаючи при цьому повну зворотну сумісність з наявною інфраструктурою моніторингу.&lt;/p&gt;
&lt;p&gt;Kubernetes v1.37 переводить нативну підтримку гістограм для метрик Kubernetes у бета-версію. Базуючись на реалізації Alpha, яка ввела функціональну можливість &lt;code&gt;NativeHistograms&lt;/code&gt;, фаза Beta покращує реалізацію та досвід розгортання. Коли увімкнено, компоненти Kubernetes експонують гістограми як у класичному, так і в нативному форматах, коли запитуваний протокол скрейпінгу підтримує Нативні Гістограми (зокрема &lt;code&gt;PrometheusProto&lt;/code&gt;), дозволяючи наявним дашбордам та сповіщенням продовжувати працювати, поки користувачі виконують міграцію у власному темпі. Реалізація також переробила гістограми, створені в функціях &lt;code&gt;init()&lt;/code&gt;, для використання лінивої ініціалізації, гарантуючи, що опції нативних гістограм правильно застосовуються після обробки функціональних можливостей. Ці зміни надають більш надійну реалізацію, зберігаючи при цьому безпечні розгортання та відкат через функціональну можливість або конфігурацію на стороні Prometheus для користувачів Prometheus 3.x.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5808/&#34;&gt;KEP #5808&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/instrumentation/&#34;&gt;SIG Instrumentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;was-features-graduating-to-beta&#34;&gt;WAS: Функції, що переходять у Beta&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#was-features-graduating-to-beta&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id=&#34;workload-aware-preemption&#34;&gt;Витіснення з урахуванням навантаження &lt;a class=&#34;td-heading-self-link&#34; href=&#34;#workload-aware-preemption&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Традиційно Kubernetes виконує витіснення на рівні Podʼів, що може бути неефективним для навантажень, що складаються з кількох тісно повʼязаних Podʼів. У Kubernetes v1.37 витіснення з урахуванням навантаження (workload-aware preemption, WAP) переходить у Beta, дозволяючи планувальнику враховувати PodGroup при прийнятті рішень про витіснення. Це допомагає планувальнику розглядати навантаження як єдину сутність при витісненні навантажень нижчого пріоритету, зменшуючи випадки, коли індивідуальні Podʼи витісняються без забезпечення достатньої потужності для роботи корисного навантаження.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5710/&#34;&gt;KEP #5710&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-resourceclaim-support-for-workloads&#34;&gt;DRA: Підтримка ResourceClaim для навантажень&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-resourceclaim-support-for-workloads&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Dynamic Resource Allocation (DRA) дозволяє Podʼам запитувати спеціалізовані ресурси через ResourceClaims. У Kubernetes v1.37 підтримка DRA ResourceClaims для навантажень переходить у Beta, дозволяючи Workload та PodGroup API асоціювати ResourceClaims та ResourceClaimTemplates з групами Podʼів. Це дозволяє ResourceClaims бути спільними для всього навантаження замість індивідуального резервування для кожного Podʼа, тоді як ResourceClaimTemplates можуть автоматично створювати claims для PodGroup.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5729/&#34;&gt;KEP #5729&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cadvisor-less-cri-full-stats&#34;&gt;Статистика контейнерів та Podʼів без cAdvisor, повністю через CRI&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#cadvisor-less-cri-full-stats&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;kubelet&lt;/code&gt; історично отримував статистику контейнерів та Podʼів з &lt;code&gt;cAdvisor&lt;/code&gt;, тоді як Container Runtime Interface (CRI) експонував власну статистику. Наявність двох джерел для однакових метрик ускладнює розуміння, звідки взялося конкретне значення.&lt;/p&gt;
&lt;p&gt;У Kubernetes v1.37 покращення «статистика контейнерів та Podʼів без cAdvisor, повністю через CRI» переходить у Beta. Це покращення розширює CRI для надання статистики контейнерів та Podʼів, необхідної Kubernetes, дозволяючи &lt;code&gt;kubelet&lt;/code&gt; отримувати ці метрики безпосередньо від рушія виконання контейнерів замість залежності від &lt;code&gt;cAdvisor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Це переміщує метрики контейнерів та Podʼів до єдиного джерела правди, одночасно зменшуючи дублювання збору метрик та спрощуючи те, як &lt;code&gt;kubelet&lt;/code&gt; збирає та виставляє ці статистики.&lt;/p&gt;
&lt;p&gt;Ця функція є Beta у v1.37, але &lt;strong&gt;стандартно вимкнена&lt;/strong&gt;; увімкніть функціональну можливість &lt;code&gt;PodAndContainerStatsFromCRI&lt;/code&gt;, щоб спробувати її.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/2371/&#34;&gt;KEP #2371&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-memory-qos-with-cgroups-v2&#34;&gt;Підтримка memory QoS з cgroups v2&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#support-memory-qos-with-cgroups-v2&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes покращує свої механізми якості обслуговування (QoS) для покриття захисту та ізоляції памʼяті для навантажень Kubernetes. Для вузлів, що працюють на Linux, функція &lt;em&gt;memory QoS&lt;/em&gt; використовує запити та ліміти памʼяті для налаштування cgroup-контролів, які можуть захистити запитану памʼять від відновлення (reclamation) та обмежити (throttle) використання памʼяті до досягнення жорстких лімітів навантаженням. Це може допомогти зменшити вплив тиску памʼяті на чутливі до памʼяті навантаження та покращити стабільність вузла.&lt;/p&gt;
&lt;p&gt;У Kubernetes v1.37 підтримка memory QoS переходить у Beta. Функція використовує cgroups v2 контролі памʼяті, такі як &lt;code&gt;memory.min&lt;/code&gt;, &lt;code&gt;memory.low&lt;/code&gt; та &lt;code&gt;memory.high&lt;/code&gt;, для надання різних рівнів захисту памʼяті та обмеження. Наприклад, запити памʼяті можуть використовуватися для захисту памʼяті від відновлення, тоді як &lt;code&gt;memory.high&lt;/code&gt; може використовуватися для обмеження навантажень, що перевищують свої налаштовані пороги.&lt;/p&gt;
&lt;p&gt;Функціональна можливість &lt;code&gt;MemoryQoS&lt;/code&gt; стандартно увімкнена у v1.37. Оператори кластерів можуть контролювати захист памʼяті через налаштування &lt;code&gt;memoryReservationPolicy&lt;/code&gt; у &lt;code&gt;kubelet&lt;/code&gt; та налаштовувати обмеження памʼяті за допомогою &lt;code&gt;memoryThrottlingFactor&lt;/code&gt;. Типово вони розроблені так, щоб уникнути несподіваного обмеження памʼяті для існуючих навантажень при оновленні до v1.37, одночасно дозволяючи операторам підключитися до додаткових можливостей захисту памʼяті.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/2570/&#34;&gt;KEP #2570&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;pod-level-resource-managers&#34;&gt;Менеджери ресурсів на рівні Podʼів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#pod-level-resource-managers&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes v1.37 &lt;em&gt;менеджери ресурсів на рівні Podʼів&lt;/em&gt; переходять у Beta з функціональною можливістю &lt;code&gt;PodLevelResourceManagers&lt;/code&gt;, яка &lt;strong&gt;залишається стандартно вимкненою&lt;/strong&gt;. Її увімкнення дозволяє менеджерам топології, CPU та памʼяті використовувати ресурси, визначені для всього Podʼа, при прийнятті рішень про виділення та NUMA-вирівнювання. Це робить можливим керування Podʼом як єдиною одиницею ресурсів, одночасно підтримуючи різні вимоги до ресурсів між контейнерами всередині нього.&lt;/p&gt;
&lt;p&gt;З управлінням ресурсів на рівні Podʼа, Pod може резервувати NUMA-вирівняний пул CPU та памʼяті на основі свого загального ресурсного бюджету. Контейнери, що вимагають виділених ресурсів, можуть отримати ексклюзивні частини цього пулу, тоді як інші контейнери, такі як sidecar або підтримуючі навантаження, можуть спільно використовувати залишкові ресурси. Це особливо корисно для промислових чутливих навантажень, таких як AI/ML та HPC, де зберігання ресурсів близько один до одного на одному NUMA-вузлі може покращити продуктивність без вимоги, щоб кожен контейнер у Podʼі мав виділені ресурси.&lt;/p&gt;
&lt;p&gt;Ця функція також підтримує область дії контейнера, в якій контейнери можуть і надалі отримувати незалежні виділення ресурсів, вирівняні за NUMA. Це забезпечує більшу гнучкість для робочих навантажень, що поєднують контейнер, чутливий до продуктивності, з іншими контейнерами, які мають інші вимоги до ресурсів.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5526/&#34;&gt;KEP #5526&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;watch-based-route-controller-reconciliation&#34;&gt;Узгоддження контролера маршрутів на основі watch (Watch-based route controller reconciliation)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#watch-based-route-controller-reconciliation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Контролер маршрутів у бібліотеці cloud-controller-manager раніше виконував узгодження маршрутів за фіксованим інтервалом, типово кожні 10 секунд. Це могло призводити до непотрібних запитів до провайдерів інфраструктури, навіть коли нічого не змінювалося, а також затримувати оновлення маршрутів при додаванні нового вузла.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Узгодження контролера маршрутів на основі watch&lt;/em&gt; перейшло в Beta в Kubernetes v1.37. Цей випуск також додає спостережуваність для цієї роботи: Alpha-метрика контролера маршрутів &lt;code&gt;route_sync_total&lt;/code&gt; отримує дві мітки — &lt;code&gt;trigger&lt;/code&gt; (&lt;code&gt;periodic&lt;/code&gt; або &lt;code&gt;node_change&lt;/code&gt;) та &lt;code&gt;outcome&lt;/code&gt; (&lt;code&gt;changed&lt;/code&gt;, &lt;code&gt;noop&lt;/code&gt; або &lt;code&gt;error&lt;/code&gt;), щоб оператори могли бачити, чи періодична реконсиляція дійсно виправляє дрифт маршрутів або просто працює як no-op, і відстежувати невдалі узгодження.&lt;/p&gt;
&lt;p&gt;З узгодженням на основі watch, контролер маршрутів може узгоджувати маршрути з подій watch замість очікування наступного фіксованого інтервалу: узгодження може розпочатися негайно, коли відбуваються відповідні зміни вузла, такі як додавання або видалення вузла, або коли змінюються його адреси або призначені Pod CIDR. Менш часте періодичне узгодження все ще виконується для виявлення застарілих маршрутів та підтримки узгодженості стану. Ця поведінка знаходиться за функціональною можливістю &lt;code&gt;CloudControllerManagerWatchBasedRoutesReconciliation&lt;/code&gt; і стандартно вимкнена, отже, перехід не змінив типову поведінку.&lt;/p&gt;
&lt;p&gt;Це зменшує непотрібні запити до провайдерів інфраструктури, дозволяючи одночасно швидше узгоджувати маршрути для щойно доданих вузлів. Зміна не змінює логіку узгодження маршрутів саму по собі; вона змінює те, &lt;em&gt;коли&lt;/em&gt; запускається узгодження.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5237/&#34;&gt;KEP #5237&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/cloud-provider/&#34;&gt;SIG Cloud Provider&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;storage-capacity-scoring-of-nodes&#34;&gt;Оцінка ємності сховища вузлів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#storage-capacity-scoring-of-nodes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Втулок планувальника &lt;code&gt;VolumeBinding&lt;/code&gt; завжди міг робити оцінку (scoring) вузлів для статично привʼязаних PV на основі вільної ємності, але ця оцінка ніколи не поширювалася на динамічне провизионування.&lt;/p&gt;
&lt;p&gt;Коли CSI-драйвер провизионує новий том за запитом, планувальник не мав способу віддати перевагу вузлу з більшою або меншою вільною областю.&lt;/p&gt;
&lt;p&gt;Це було прогалиною для локального сховища, оскільки адміністратор міг хотіти, щоб Podʼи потрапляли на вузол з найбільшою вільною ємністю, щоб залишити місце для пізнішого розширення тома, або на вузол з найменшою (але все ще достатньою) вільною ємністю, щоб упакувати навантаження щільніше (bin-pack) і зменшити кількість вузлів, необхідних для роботи хмарного кластера.&lt;/p&gt;
&lt;p&gt;Kubernetes v1.37 переводить оцінювання ємності сховища для динамічного провізіонування у бета-версію за допомогою функціональної можливості &lt;code&gt;StorageCapacityScoring&lt;/code&gt;. Її вперше представили в альфа-версії в v1.33, а ця функція обʼєднує й оголошує застарілою старішу функціональну можливість &lt;code&gt;VolumeCapacityPriority&lt;/code&gt; з &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/1845/&#34;&gt;KEP #1845&lt;/a&gt;. Коли її увімкнено, точка розширення &lt;code&gt;Score&lt;/code&gt; втулка &lt;code&gt;VolumeBinding&lt;/code&gt; зчитує обʼєкти &lt;code&gt;CSIStorageCapacity&lt;/code&gt;, опубліковані зовнішнім sidecar-контейнером провізіонера драйвера, й оцінює вузли для динамічного провізіонування так само, як уже робить для статичних привʼязок. Адміністратори обирають стратегію через параметр &lt;code&gt;Shape&lt;/code&gt; у &lt;code&gt;VolumeBindingArgs&lt;/code&gt; — типово це «надавати перевагу вузлу з максимальною доступною ємністю», щоб залишити простір для подальшого розширення.&lt;/p&gt;
&lt;p&gt;Функція залежить виключно від функціональної можливості &lt;code&gt;StorageCapacityScoring&lt;/code&gt;: оцінка для статично привʼязаних PV запускається одразу при увімкненні, незалежно від будь-якого CSI-драйвера. Драйверу потрібно лише &lt;code&gt;StorageCapacity: true&lt;/code&gt; на своєму обʼєкті &lt;code&gt;CSIDriver&lt;/code&gt;, щоб його динамічно надані томи також отримували оцінку з урахуванням ємності. Функція повністю зворотня, і вимкнення функціональної можливості зупиняє всю оцінку ємності VolumeBinding, як статичну, так і динамічну, без впливу на вже заплановані Podʼи.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4049/&#34;&gt;KEP #4049&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/storage/&#34;&gt;SIG Storage&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;integrate-csi-volume-attach-limits-with-cluster-autoscaler&#34;&gt;Інтеграція CSI лімітів підключення томів з Cluster Autoscaler&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#integrate-csi-volume-attach-limits-with-cluster-autoscaler&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes v1.37 покращено інтеграцію Cluster Autoscaler з обмеженнями підключення томів CSI, завдяки чому під час створення нових вузлів для Podʼів, що очікують на обробку, Cluster Autoscaler може точніше визначити, скільки нових вузлів потрібно для підключення всіх Podʼів, що очікують на обробку та використовують томи CSI. Cluster Autoscaler вже мав доступ до інформації про обмеження підключення томів CSI для наявних вузлів, але не для вузлів, які він збирався створити, що означало: він міг недостатньо масштабувати систему і залишати Podʼи, що використовують томи, у стані очікування навіть після додавання ємності. Проблема ускладнюється з боку планування: втулок &lt;code&gt;NodeVolumeLimits&lt;/code&gt; розглядає вузол без опублікованої інформації про драйвер CSI як такий, що не має жодних обмежень, тому щойно створений вузол, який ще не повідомив про свій об’єкт &lt;code&gt;CSINode&lt;/code&gt;, може бути переповнений більшою кількістю Podʼів, підкріплених томами, ніж він фактично може підключити, що є конкурентною ситуацією, яку дотепер адміністратори кластерів не мали можливості усунути.&lt;/p&gt;
&lt;p&gt;У версії Kubernetes v1.37 функція автоматичного масштабування з підтримкою CSI переходить у стадію бета-тестування з функціональною можливістю &lt;code&gt;VolumeLimitScaling&lt;/code&gt;, яка вперше була представлена у версії v1.35 у стадії альфа-тестування. Cluster autoscaler тепер запускає симуляції масштабування вгору для шаблонних обʼєктів &lt;code&gt;CSINode&lt;/code&gt;, щоб правильно враховувати ліміти підключення, чи то він масштабує наявну групу вузлів, чи створює її з нуля. З боку планувальника, адміністратори можуть підключитися на рівні &lt;code&gt;CSIDriver&lt;/code&gt;, через нове поле &lt;code&gt;PreventPodSchedulingIfMissing&lt;/code&gt;, щоб заблокувати розміщення Podʼів на вузлах, що ще не повідомили свій драйвер, з виділеними помилками &lt;code&gt;CSIDriverMissingOnNode&lt;/code&gt; та &lt;code&gt;CSINodeMissing&lt;/code&gt;, що роблять ці помилки планування легшими для відстеження. Фаза Beta додає наскрізне покриття для поведінки масштабування вниз та сценаріїв CSI opt-in, та оновлює метрики &lt;code&gt;failed_scale_ups_total&lt;/code&gt; та &lt;code&gt;scaled_up_nodes_total&lt;/code&gt;, щоб включати інформацію про CSI-драйвери. Зміни як в автомасштабувачі, так і в планувальнику залишаються суто опціональними: вимкнення функціональної можливості відновлює поточне стандартне значення — необмежене розміщення подів на вузлах без даних &lt;code&gt;CSINode&lt;/code&gt;, тому дистрибутиви та адміністратори, які використовують автомасштабувачі, що ще не підтримують CSI (наприклад, Karpenter), не змушені переходити на нову модель роботи.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5030/&#34;&gt;KEP #5030&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/autoscaling/&#34;&gt;SIG Autoscaling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;report-last-used-time-on-a-pvc&#34;&gt;Звіт про час останнього використання PVC&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#report-last-used-time-on-a-pvc&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;PersistentVolumeClaims&lt;/code&gt; зазвичай живуть довше за навантаження, що їх створили. Коли застосунок видаляється або мігрує, його PVC залишається, споживаючи сховище та збільшуючи витрати. Сьогодні Kubernetes не дає адміністраторам кластерів жодного способу дізнатися, як довго PVC просидів бездіяльно; &lt;code&gt;kubelet&lt;/code&gt; є єдиним компонентом, який дійсно знає, коли том був змонтований останній раз, але немає чогось що не виводить цю інформацію на рівні API, тому адміністратори залишаються вгадувати, які PVC насправді безпечні для очищення.&lt;/p&gt;
&lt;p&gt;Kubernetes v1.37 переводить відстеження «останнього використання» PVC у Beta з функціональною можливістю &lt;code&gt;PersistentVolumeClaimUnusedSinceTime&lt;/code&gt;, яка у Alpha (v1.36) була стандартно вимкнена, а тепер стандартно увімкнена. Функція додає новий стан &lt;code&gt;Unused&lt;/code&gt; до &lt;code&gt;PersistentVolumeClaimStatus&lt;/code&gt;, якою керує наявний контролер захисту PVC: &lt;code&gt;Status=True (Reason=NoPodsUsingPVC)&lt;/code&gt; коли останній нетермінальний Pod, що посилається на PVC, зникає, і назад до &lt;code&gt;Status=False (Reason=PodUsingPVC)&lt;/code&gt; якомога швидше, як тільки Pod починає посилатися на нього знову. &lt;code&gt;lastTransitionTime&lt;/code&gt; цього стану використовується як позначка часу «невикористано з», тому адміністратори можуть запитати, та як довго PVC дійсно просидів бездіяльно, без того, щоб Kubernetes відстежував, який саме Pod використав його останнім, чи приймав будь-які рішення про видалення — це залишається повністю на розсуд адміністратора. Варто зазначити, що позначка часу відображає момент, коли контролер спостерігав відсутність Podʼів, що використовують PVC, а не точний момент розмонтування тома на рівні інфраструктури, тому повідомлений час бездіяльності може бути дещо меншим за справжній, але ніколи не перевищить його.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5541/&#34;&gt;KEP #5541&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/storage/&#34;&gt;SIG Storage&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;etcd-rangestream-support&#34;&gt;Підтримка etcd RangeStream&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#etcd-rangestream-support&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Унарний RPC-виклик &lt;code&gt;Range&lt;/code&gt; в &lt;code&gt;etcd&lt;/code&gt; формує повну відповідь у пам’яті перед її відправкою, що стає проблемою при масштабуванні. У випадку великого списку, наприклад, під час розігріву кешу спостереження kube-apiserver у великому кластері, необроблений фрагмент «ключ-значення», його серіалізована форма protobuf та буфер відправки gRPC мають одночасно співіснувати в пам’яті, а внаслідок цього спалахи навантаження поширюються й на kube-apiserver. Разбиття на сторінки також не вирішує проблему базових витрат, оскільки кожна сторінка все одно проходить весь індекс B-дерева для обчислення загальної кількості результатів, перетворюючи операцію, яка мала б бути &lt;code&gt;O(limit)&lt;/code&gt;, на операцію &lt;code&gt;O(total_keys)&lt;/code&gt; для кожної окремої сторінки.&lt;/p&gt;
&lt;p&gt;У Kubernetes v1.37 підтримка &lt;code&gt;etcd&lt;/code&gt; &lt;code&gt;RangeStream&lt;/code&gt; надається безпосередньо у версії Beta, з функціональною можливістю &lt;code&gt;EtcdRangeStream&lt;/code&gt; (лише для &lt;code&gt;kube-apiserver&lt;/code&gt;, стандартно &lt;strong&gt;увімкнено&lt;/strong&gt;). У цьому випуску додано новий RPC-інтерфейс &lt;code&gt;RangeStream&lt;/code&gt; для потокової передачі на сервері, який використовує наявний &lt;code&gt;RangeRequest&lt;/code&gt; але повертає фрагменти замість одного буферованого блоку: сервер внутрішньо розбиває дані на сторінки з адаптивним розміром фрагментів (цільовий розмір кожного фрагмента коригується на основі &lt;code&gt;MaxRequestBytes&lt;/code&gt; та розмірів значень, зафіксованих на даний момент), фіксує одну ревізію MVCC, щоб об’єднаний потік залишався узгодженим зі знімком, та обчислює загальну кількість ключів на основі поточного підрахунку, який формується під час потокової передачі, а не шляхом окремого обходу індексу. Ініціалізація кешу спостереження &lt;code&gt;kube-apiserver&lt;/code&gt; є основним споживачем, і тепер вона декодує кожен фрагмент у синтетичні події &lt;em&gt;created&lt;/em&gt; безпосередньо під час їх надходження, замість того, щоб спочатку збирати повний список у пам’яті; така сама обробка застосовується до прямих викликів &lt;code&gt;GetList&lt;/code&gt;, коли &lt;code&gt;WatchList&lt;/code&gt; вимкнено.&lt;/p&gt;
&lt;p&gt;Ця функція вимагає &lt;code&gt;etcd&lt;/code&gt; версії 3.7 або вище; у разі використання старішої версії &lt;code&gt;etcd&lt;/code&gt;, &lt;code&gt;kube-apiserver&lt;/code&gt; виявляє відповідь Unimplemented і автоматично переходить на унарний &lt;code&gt;Range&lt;/code&gt;, без жодних змін у поведінці. Якщо закріплена ревізія ущільнюється в процесі роботи, &lt;code&gt;kube-apiserver&lt;/code&gt; трактує це так само, як і будь-яку іншу помилку ініціалізації кешу спостереження, і робить повторну спробу, що не гірше, ніж гонитви за ущільнення, з якими вже сьогодні може зіткнутися виклик &lt;code&gt;List&lt;/code&gt; з розбиттям на сторінки. Критерії виходу з бета-версії включають тест на масштабованість, що вимірює затримку при роботі з великими списками на кластері з 5000 вузлів, а команда &lt;code&gt;etcdctl get --stream&lt;/code&gt; поставляється разом із нею для тих, хто хоче безпосередньо протестувати новий RPC.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5966/&#34;&gt;KEP #5966&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/etcd/&#34;&gt;SIG etcd&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;concurrent-watch-object-decode&#34;&gt;Конкурентне декодування обʼєктів watch&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#concurrent-watch-object-decode&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;kube-apiserver&lt;/code&gt; декодує та перетворює кожну подію спостереження з &lt;code&gt;etcd&lt;/code&gt; по черзі в одній goroutine, тому одне повільне перетворення на подію, зокрема виклик вебхука для конвертації CRD, блокує всі події, що стоять у черзі за ним. Це здебільшого створює незручності для вбудованих ресурсів, але для CRD, версія якого в сервісі відрізняється від збереженої, послідовне перетворення «холодного» кешу може займати кілька хвилин. Якщо це перевищує стандартний 5-хвилинний інтервал ущільнення &lt;code&gt;etcd&lt;/code&gt;, ревізія, з якої кеш почав читати, ущільнюється до завершення ініціалізації, спостереження не може поновитися, а ініціалізація просто перезапускається і ніколи не завершується для достатньо великого ресурсу, при цьому кожен клієнт, який намагається перелічити або спостерігати за ним, отримує помилки.&lt;/p&gt;
&lt;p&gt;Функціональна можливість &lt;code&gt;ConcurrentWatchObjectDecode&lt;/code&gt; фактично була у Beta, стандартно вимкнена, з v1.31, і Kubernetes v1.37 стандартно увімкнув її. Це увімкнення переміщує крок декодування/трансформації на обмежений пул робітничих goroutines (10 типово, налаштовано з перебору, що показав, що вигоди отримуються навколо 8–12) замість однієї, з колектором, що збирає події назад у їхній оригінальний порядок перед доставкою, тому порядок подій зберігається точно. У бенчмарках на 150k+ podʼах, лише паралельне декодування скорочує ініціалізацію кешу приблизно на 40%, а приблизно на 55% в поєднанні з новою функцією &lt;code&gt;EtcdRangeStream&lt;/code&gt;, що також виходить в цьому випуску (див. KEP 5966). Головний компроміс, за яким варто слідкувати — навантаження на conversion webhook. З увімкненою функцією, до 10 конвертацій тепер можуть одночасно виконуватися для webhookʼа під час ініціалізації кешу замість однієї за раз. Загальний обсяг викликів не змінюється, лише кількість, що виконуються одночасно, отже це переважно стосується webhookʼів, які обмежують власну конкурентність нижче 10.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6178/&#34;&gt;KEP #6178&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;stale-controller-mitigation&#34;&gt;Заходи щодо усунення наслідків використання застарілого контролера&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#stale-controller-mitigation&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Кожен контролер у &lt;code&gt;kube-controller-manager&lt;/code&gt; працює з локального кешу, побудованого шляхом спостереження за &lt;code&gt;kube-apiserver&lt;/code&gt;, а цей watch-потік є лише зрештою консистентним. Зміна може зʼявитися за мілісекунди, або це може зайняти секунди чи навіть хвилини під навантаженням. Наразі оператори не мають уявлення про це відставання і не можуть відрізнити нормальну затримку від ситуації, коли контролер небезпечно втратив синхронізацію, тому контролер може продовжувати узгоджувати свої дані з уявленням про стан системи, яке вже є застарілим.&lt;/p&gt;
&lt;p&gt;Заходи щодо мінімізації ризиків, пов’язаних із застарілими контролерами, перебувають у стадії бета-тестування з версії v1.36 і є стандартними для кожного контролера за функціональною можливісьтю &lt;code&gt;StaleControllerConsistency&amp;lt;Controller&amp;gt;&lt;/code&gt;; у Kubernetes v1.37 ці заходи поширено на контролер HorizontalPodAutoscaler та додано варіант із механізмом відключення (circuit-breaking) і додаткові метрики, описані нижче. Основний механізм — це гарантія &lt;em&gt;read your writes&lt;/em&gt;: &lt;code&gt;ResourceEventHandlerFuncs&lt;/code&gt; у client-go отримує новий callback &lt;code&gt;BookmarkFunc&lt;/code&gt;, щоб контролер міг надійно відстежувати версію ресурсу обʼєктів, які йому цікаві, навіть через крайні випадки, які наявні callbackʼи add/update/delete пропускають. Контролер записує версію ресурсу власних записів і, при наступному узгодженні, пропускає та повторно ставить у чергу, доки його інформер-кеш дійсно не наздогнав цей запис. Контролер DaemonSet — хороший приклад цього. Він відстежує версії ресурсів DaemonSet → Pod, щоб не переузгоджувати проти власного застарілого pod-кешу. Другий, circuit-breaking варіант націлений на контролери, чутливі до затримок, на кшталт node-lifecycle, які інакше могли б прочитати застарілий node lease з кешу і помилково вирішити, що він закінчився; замість цього він робить живий GET на руйнівному рішенні і позначає свій кеш як «not ready», доки він не догонить його, замість того щоб діяти на основі застарілого читання. &lt;code&gt;StaleControllerConsistency&lt;/code&gt; контролює саму процедуру пом’якшення наслідків (спочатку застосовується до контролерів, які KCM позначив як великомасштабні), &lt;code&gt;MonitorInformerStaleness&lt;/code&gt; — це окремий контрольний механізм, призначений лише для спостереження, який кожні 5 секунд безпосередньо опитує apiserver виключно для того, щоб виявити, наскільки насправді відстає кеш інформера, а &lt;code&gt;AtomicFIFO&lt;/code&gt; / &lt;code&gt;UnlockWhileProcessingFIFO&lt;/code&gt; — це базові механізми черги завдань client-go, від яких залежить робота механізму помʼякшення наслідків. Ніщо з цього не змінює стандартну поведінку узгоджувача; контролер, який було призупинено та знову поставлено в чергу, може здаватися застряглим, хоча насправді він просто чекає на свій кеш, і він коректно відкочується, оскільки жодна його дія не є незворотною.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5647/&#34;&gt;KEP #5647&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;manifest-based-admission-control-config&#34;&gt;Конфігурація контролю допуску на основі маніфесту&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#manifest-based-admission-control-config&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes контроль допуску відповідає за забезпечення дотримання політик щодо ресурсів до того, як вони будуть прийняті сервером API. Однак вебхуки та політики допуску, налаштовані через API Kubernetes, під час запуску кластера залежать від сервера API та etcd і не можуть захистити самі ресурси конфігурації допуску. Це створює вразливість під час початкового запуску кластера та дозволяє користувачам із достатніми привілеями змінювати або видаляти критично важливі політики допуску.&lt;/p&gt;
&lt;p&gt;У Kubernetes v1.37 конфігурація &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/manifest-admission-control/&#34;&gt;контролю доступу на основі маніфестів&lt;/a&gt; перейшла у стадію бета-тестування, що дозволяє завантажувати вебхуки доступу та політики на основі CEL із файлів маніфестів на диску та застосовувати їх із моменту запуску сервера API. Оскільки ця конфігурація управляється незалежно від API Kubernetes, вона також може захищати ресурси контролю доступу на основі API від модифікацій. Файли маніфестів відстежуються на наявність змін, і дійсні оновлення перезавантажуються автоматично, тоді як недійсні оновлення залишають попередньо завантажену конфігурацію без змін.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5793/&#34;&gt;KEP #5793&lt;/a&gt; під керівництвом  &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/api-machinery/&#34;&gt;SIG API Machinery&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;improved-handling-for-undecryptable-resources&#34;&gt;Покращена обробка нерозшифровуваних ресурсів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improved-handling-for-undecryptable-resources&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes зберігає ресурси в etcd, де шифрування в стані спокою може бути використане для захисту чутливих даних. Однак, коли зашифровані ресурси більше не можуть бути розшифровані, наприклад, тому що ключ шифрування недоступний, API-сервер не може читати або керувати цими ресурсами нормально. Це може залишити ресурси в кластері, до яких неможливо отримати доступ через Kubernetes API, вимагаючи від адміністраторів вручну модифікувати базові дані etcd для відновлення.&lt;/p&gt;
&lt;p&gt;Kubernetes v1.37 включає Beta підтримку для адміністраторів кластерів для ідентифікації та видалення ресурсів, які не можуть бути розшифровані API-сервером.&lt;/p&gt;
&lt;p&gt;Раніше Alpha, і введена в Kubernetes v1.32, ця підтримка дозволяє видаляти проблемні API-ресурси через Kubernetes API замість безпосереднього маніпулювання файлом etcd. Ця функція також надає засоби безпеки для адміністраторів для перевірки задіяних ресурсів перед видаленням.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/3926/&#34;&gt;KEP #3926&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/auth/&#34;&gt;SIG Auth&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;new-features-in-alpha&#34;&gt;Нові функції в Alpha&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-features-in-alpha&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;new-recreate-strategy-for-statefulset-rollouts&#34;&gt;Нова стратегія &lt;code&gt;Recreate&lt;/code&gt; для розгортання StatefulSet&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-recreate-strategy-for-statefulset-rollouts&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 вводить стратегію &lt;code&gt;Recreate&lt;/code&gt; для розгортання StatefulSet. StatefulSet API раніше пропонував лише дві стратегії оновлення: OnDelete (ручна) та RollingUpdate (автоматична, типово). Схоже на Deployments, стратегія оновлення &lt;code&gt;Recreate&lt;/code&gt; видаляє всі Podʼи StatefulSet перед створенням нових Podʼів, що відображають модифікації, зроблені до &lt;code&gt;.spec.template&lt;/code&gt; StatefulSet. Використання цієї стратегії вимагає увімкнення функціональної можливості &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/command-line-tools-reference/feature-gates/#StatefulSetRecreateStrategy&#34;&gt;&lt;code&gt;StatefulSetRecreateStrategy&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/3541/&#34;&gt;KEP #3541&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/apps/&#34;&gt;SIG Apps&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;dra-alpha-features-to-look-out-for&#34;&gt;DRA: Alpha функції, на які варто звернути увагу&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-alpha-features-to-look-out-for&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id=&#34;dra-node-allocatable-resource-request&#34;&gt;DRA: Запит на ресурси, що розподіляються вузлом&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-node-allocatable-resource-request&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Kubernetes v1.37 покращує Alpha підтримку керування ресурсами вузла, такими як CPU, памʼять та huge pages, через DRA. Це обʼєднує стандартний та DRA облік ресурсів, допомагаючи запобігти подвійному рахуванню однієї й тієї ж можливості вузла.&lt;/p&gt;
&lt;p&gt;Це оновлення вводить окремі API-поля для &lt;code&gt;mapping&lt;/code&gt; (для пристроїв, що безпосередньо моделюють основні ресурси, на кшталт CPU/памʼяті DRA драйверів) та &lt;code&gt;overhead&lt;/code&gt; (як допоміжна хост-памʼять для пристроїв прискорення). Kubelet тепер примушує ці виділення між pod та container cgroups, інтегрує їх з Memory QoS, розрахунками OOM score та in-place зміною розміру podʼа.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5517/&#34;&gt;KEP #5517&lt;/a&gt;, під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt; з участю &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-derived-attributes&#34;&gt;DRA: Похідні атрибути&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-derived-attributes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Kubernetes v1.37 вводить Alpha підтримку &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/resource-management/dynamic-resource-allocation/dra-api/#derived-attributes&#34;&gt;похідних атрибутів у DRA&lt;/a&gt;. Навантаження можуть використовувати CEL-вирази для створення віртуальних атрибутів з інформації про пристрої та використання їх при виборі повʼязаних пристроїв.&lt;/p&gt;
&lt;p&gt;Це полегшує ко-локацію пристроїв, таких як GPU та мережеві інтерфейси, навіть коли їх драйвери використовують різні імена атрибутів або формати. Наприклад, навантаження може вивести спільний NUMA ідентифікатор і використати його для вибору пристроїв з відповідною топологією.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6080/&#34;&gt;KEP #6080&lt;/a&gt;, під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt; з участю &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/network/&#34;&gt;SIG Network&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dra-device-compatibility-groups&#34;&gt;DRA: Групи сумісності пристроїв&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dra-device-compatibility-groups&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;DRA можна використовувати для управління пристроями, що підтримують різні схеми розділення або віртуалізації. Однак деякі з цих конфігурацій не можна використовувати одночасно на одному фізичному пристрої, наприклад MIG і vGPU на графічному процесорі. Раніше ці несумісності можна було виявити лише під час підготовки пристрою, після того як планувальник уже прийняв своє рішення.&lt;/p&gt;
&lt;p&gt;У Kubernetes v1.37 DRA додає групи сумісності пристроїв, дозволяючи драйверам ресурсів описувати, які пристрої можуть бути виділені разом. Планувальник може використовувати цю інформацію при прийнятті рішень про виділення, запобігаючи призначенню некомплектних пристроїв разом і уникаючи помилок запуску Podʼів, спричинених некомплектними конфігураціями пристроїв.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5963/&#34;&gt;KEP #5963&lt;/a&gt;, під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;scheduler-preemption-in-place-pod-resize&#34;&gt;Витіснення планувальником для in-place зміни розміру Podʼа&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#scheduler-preemption-in-place-pod-resize&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 вводить &lt;em&gt;витіснення планувальником для in-place зміни розміру podʼа&lt;/em&gt;, за (opt-in, Alpha) функціональною можливістю &lt;code&gt;InPlacePodVerticalScalingSchedulerPreemption&lt;/code&gt;. Ця зміна вирішує важливу прогалину функціоналу, що залишилася після того, як основна функція &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/workloads/pods/pod-lifecycle/#pod-resize-inplace&#34;&gt;вертикального масштабування Podʼа на місці&lt;/a&gt; перейшла в Stable: якщо запущений pod запитував додаткові ресурси, що перевищували доступну ємність вузла, &lt;code&gt;kubelet&lt;/code&gt; позначав запит як &lt;code&gt;Deferred&lt;/code&gt;, залишаючи pod очікувати, поки достатньо ресурсів не стане доступними на вузлі. Завдяки цьому вдосконаленню панель управління Kubernetes може активно звільняти ємність на повністю завантаженому вузлі та витісняти навантаження з нижчим пріоритетом, дозволяючи відкладеним in-place запитам на зміну розміру критичних застосунків з вищим пріоритетом успішно завершитися.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5836/&#34;&gt;KEP #5836&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;dynamic-resize-of-memory-backed-volumes&#34;&gt;Динамічна зміна розміру memory-backed томів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#dynamic-resize-of-memory-backed-volumes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Також спираючись на вертикальне масштабування Podʼів «на місці», функція Alpha &lt;em&gt;масштабування на місці для томів, що підтримуються памʼяттю&lt;/em&gt; розширює субресурс pod &lt;code&gt;/resize&lt;/code&gt;, який раніше дозволяв лише динамічне регулювання CPU та памʼяті без перезапуску контейнерів, щоб підтримати оновлення параметра &lt;code&gt;sizeLimit&lt;/code&gt; томів &lt;code&gt;emptyDir&lt;/code&gt;, що підтримуються памʼяттю (medium: Memory), у запущених Podʼах. Коли параметр &lt;code&gt;sizeLimit&lt;/code&gt; тома явно регулюється за допомогою субресурсу /resize, Kubelet динамічно оновлює базове монтування tmpfs без переривання роботи контейнера, одночасно надійно запобігаючи помилкам нестачі памʼяті або помилковим спрацьовуванням механізмів витіснення. Це особливо корисно для робочих навантажень із збереженням стану та з інтенсивним використанням памʼяті, які покладаються на тимчасове зберігання даних у памʼяті, що дозволяє їм динамічно масштабувати межі зберігання разом із об’ємом пам’яті контейнера без перезапуску подів або простоїв застосунків.&lt;/p&gt;
&lt;p&gt;Це альфа-функція, яка вмикається за бажанням користувача і зазвичай вимкнена. Щоб спробувати її, увімкніть функціональну можливість &lt;code&gt;InPlacePodVerticalScalingMemoryBackedVolumes&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6030/&#34;&gt;KEP #6030&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt; та &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/storage/&#34;&gt;SIG Storage&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;specialized-lifecycle-management-for-nodes&#34;&gt;Спеціалізоване управління життєвим циклом вузлів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#specialized-lifecycle-management-for-nodes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Декілька компонентів Kubernetes потребують інформації про стан життєвого циклу вузла, і на сьогодні кожен із них визначає його на основі різного поєднання готовності вузла, позначок taint, стану Pod, міток, анотацій та API-інтерфейсів провайдерів. Це вдосконалення запроваджує загальновизнані умови життєвого циклу для вузлів, надаючи адміністраторам єдине місце в Kubernetes для публікації стану життєвого циклу, яке можуть використовувати основні контролери та інструменти екосистеми. Ці нові умови вузлів (Node Conditions) такі: &lt;code&gt;DrainInProgress&lt;/code&gt;, &lt;code&gt;Drained&lt;/code&gt;, &lt;code&gt;MaintenancePlanned&lt;/code&gt;, &lt;code&gt;MaintenanceInProgress&lt;/code&gt; та &lt;code&gt;GracefulNodeShutdownInProgress&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5683/&#34;&gt;KEP #5683&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/node/&#34;&gt;SIG Node&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;was-alpha-features-to-look-out-for&#34;&gt;WAS: Alpha функції, на які варто звернути увагу&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#was-alpha-features-to-look-out-for&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 id=&#34;compositepodgroup-api&#34;&gt;CompositePodGroup API&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#compositepodgroup-api&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Попередні випуски вводили підтримку групового планування навантажень з плоскою структурою, сучасні AI/ML навантаження є складними і мають більш витончені вимоги до планування. У Kubernetes v1.37 новий Alpha &lt;code&gt;CompositePodGroup&lt;/code&gt; API дозволяє Kubernetes описувати складні навантаження як ієрархію груп замість плаского набору Podʼів. Це дозволяє багаторівневе групове планування, workload-aware preemption та topology-aware планування.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6012/&#34;&gt;KEP #6012&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;workload-aware-scheduling-controller-apis&#34;&gt;API контролера планування з урахуванням навантаження&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#workload-aware-scheduling-controller-apis&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Як Alpha функція, в Kubernetes v1.37 надається спільний фреймворк для інтеграції контролерів навантажень (таких як JobSet, TrainJob, LWS, та RayJob, поряд з основними навантаженнями, такими як &lt;code&gt;Job&lt;/code&gt;) з &lt;em&gt;Workload-aware Scheduling&lt;/em&gt; (WAS). Які функція альфа-версії, Kubernetes v1.37 надає загальну платформу для інтеграції контролерів робочих навантажень (таких як JobSet, TrainJob, LWS та RayJob, а також основних робочих навантажень, таких як &lt;code&gt;Job&lt;/code&gt;) із &lt;em&gt;плануванням з урахуванням робочих навантажень&lt;/em&gt; (WAS).&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6089/&#34;&gt;KEP #6089&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;workload-apis-job-controller&#34;&gt;Інтеграція Workload API з Job контролером&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#workload-apis-job-controller&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Спочатку введена в Kubernetes v1.36 з обмеженим функціоналом, ця функція будує на &lt;a href=&#34;#workload-aware-scheduling-controller-apis&#34;&gt;Workload Aware Scheduling Controller APIs&lt;/a&gt;, додаючи нове поле &lt;code&gt;spec.scheduling&lt;/code&gt; для користувача до &lt;code&gt;batch/v1&lt;/code&gt; Job у Kubernetes v1.37, дозволяючи користувачам явно конфігурувати політики планування, обмеження топології, режими розладів (disruption modes) та resource claims. Якщо &lt;code&gt;spec.scheduling&lt;/code&gt; виключено, Job типово використовує Basic планування, зберігаючи наявну поведінку, при цьому створюючи Basic Workload/PodGroup для workload-aware планування, без використання minCount gate. Користувачі можуть явно використовувати (opt in) Gang планування, де &lt;code&gt;minCount&lt;/code&gt; типово дорівнює паралелізму Jobʼа, а контролер використовує спільну бібліотеку &lt;code&gt;workloadbuilder&lt;/code&gt; для перекладу конфігурації планування у відповідні обʼєкти Workload та PodGroup замість реалізації власної логіки перекладу.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5547/&#34;&gt;KEP #5547&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/scheduling/&#34;&gt;SIG Scheduling&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;localhost-nodeport-userspace-proxy-for-nftables&#34;&gt;Проксі користувацького простору (userspace) для &lt;code&gt;localhost&lt;/code&gt; NodePort для &lt;code&gt;nftables&lt;/code&gt;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#localhost-nodeport-userspace-proxy-for-nftables&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes v1.37 додає opt-in userspace проксі до &lt;code&gt;nftables&lt;/code&gt; бекенду &lt;code&gt;kube-proxy&lt;/code&gt;, дозволяючи NodePort сервісам бути доступними через &lt;code&gt;localhost&lt;/code&gt; поверх IPv4 та IPv6. Це закриває прогалину між &lt;code&gt;nftables&lt;/code&gt; та &lt;code&gt;iptables&lt;/code&gt; бекендами, оскільки &lt;code&gt;nftables&lt;/code&gt; раніше не міг обслуговувати localhost NodePortʼи.&lt;/p&gt;
&lt;p&gt;Проксі увімкнено, коли &lt;code&gt;localhost&lt;/code&gt; або loopback-адреса включена в конфігурацію &lt;code&gt;--nodeport-addresses&lt;/code&gt; &lt;code&gt;kube-proxy&lt;/code&gt;. Це може бути корисним для навантажень, таких як локальні контейнерні реєстрі, що покладаються на зʼєднання &lt;code&gt;localhost:&amp;lt;NodePort&amp;gt;&lt;/code&gt;. Наявна поведінка &lt;code&gt;iptables&lt;/code&gt; та &lt;code&gt;ipvs&lt;/code&gt; бекендів незмінна.&lt;/p&gt;
&lt;p&gt;Ця робота була виконана як частина &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6032/&#34;&gt;KEP #6032&lt;/a&gt; під керівництвом &lt;a href=&#34;https://www.kubernetes.dev/community/community-groups/sigs/network/&#34;&gt;SIG Network&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;other-notable-changes&#34;&gt;Інші значущі зміни&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#other-notable-changes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;maxunavailable-for-statefulsets-back-on-by-default&#34;&gt;&lt;code&gt;maxUnavailable&lt;/code&gt; для StatefulSets знову стандартно увімкнено&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#maxunavailable-for-statefulsets-back-on-by-default&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Поле &lt;code&gt;maxUnavailable&lt;/code&gt; для StatefulSets було знову стандартно увімкнено у Kubernetes v1.37 (після того, як баг був виявлений у v1.36).&lt;/p&gt;
&lt;p&gt;Баг виникав, коли несправна початкова ревізія StatefulSet створювала Pod, який ніколи не ставав ready, і з увімкненим &lt;code&gt;MaxUnavailableStatefulSet&lt;/code&gt;, контролер StatefulSet не міг оновити той Pod до новій, виправленій ревізії. Коли баг спрацьовував, зазначений Pod міг застрягти в стані CrashLoopBackOff безкінечно (див. &lt;a href=&#34;https://github.com/kubernetes/kubernetes/issues/137409&#34;&gt;kubernetes#137409&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id=&#34;improved-nftables-performance&#34;&gt;Покращена продуктивність &lt;code&gt;nftables&lt;/code&gt;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#improved-nftables-performance&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;kube-proxy тепер використовує kernel netlink інтерфейс для операцій з правилами nftables, обходячи утиліту командного рядка &lt;code&gt;nft&lt;/code&gt;. Це робить kube-proxy ефективнішим при перевірці та управлінні правилами nftables, покращуючи продуктивність управління правилами.&lt;/p&gt;
&lt;h3 id=&#34;context-handling-and-contextual-logging-in-client-go&#34;&gt;Обробка контексту та контекстне логування в client-go&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#context-handling-and-contextual-logging-in-client-go&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Підтримка розповсюдження контексту та контекстного логування в client-go завершена, за винятком невеликої кількості викликів логування втулків автентифікації, які все ще покладаються на глобальний klog логер, бо базові API не підтримують передачу контексту.&lt;/p&gt;
&lt;h2 id=&#34;graduations-deprecations-and-removals-in-v1-37&#34;&gt;Зміна статусу, застарілі та видалені функції у v1.37&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#graduations-deprecations-and-removals-in-v1-37&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;graduations-to-stable&#34;&gt;Переходи в Stable&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#graduations-to-stable&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Цей розділ перераховує всі функції, що перейшли в Stable (також відомі як загальна доступність). Для повного списку оновлень, включаючи нові функції та переходи з Alpha в Beta, дивіться примітки до випуску.&lt;/p&gt;
&lt;p&gt;Цей випуск включає загалом 16 вдосконалень, переведених у Stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/1710/&#34;&gt;Прискорення рекурсивної зміни міток SELinux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/3257/&#34;&gt;ClusterTrustBundles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4317/&#34;&gt;Сертифікати Podʼів&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4762/&#34;&gt;Дозволити встановлення довільного FQDN як hostname podʼа&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4817/&#34;&gt;DRA: Статус Resource Claim з можливими стандартизованими даними мережевого інтерфейсу&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4951/&#34;&gt;Налаштована толерантність для HorizontalPodAutoscalers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5311/&#34;&gt;Спрощена валідація для імен Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4680/&#34;&gt;Додавання Resource Health Status до Pod Status для Device Plugin та DRA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5055/&#34;&gt;DRA: taint та toleration пристроїв&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5004/&#34;&gt;DRA: Обробка запитів розширених ресурсів через DRA Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5328/&#34;&gt;Функції, оголошені вузлом&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/3085/&#34;&gt;Додавання станів для створення sandboxʼу&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4192/&#34;&gt;Переміщення Storage Version Migrator in-tree&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/4568/&#34;&gt;Стійка ініціалізація Watchcache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/6072/&#34;&gt;DRA: Стандартний атрибут пристрою numaNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5207/&#34;&gt;Визначення API metrics.k8s.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5295/&#34;&gt;KYAML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deprecations-removals-and-community-updates&#34;&gt;Застарілі функції, видалення та оновлення від спільноти&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#deprecations-removals-and-community-updates&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;У міру розвитку та вдосконалення Kubernetes окремі функції можуть бути визнані застарілими, видалені або замінені кращими з метою забезпечення загального стабільного функціонування проєкту. Деталі цього процесу дивіться в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/using-api/deprecation-policy/&#34;&gt;політиці застарівання та видалення Kubernetes&lt;/a&gt;. Багато з цих застарівань та видалень були оголошені в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/blog/2026/07/31/kubernetes-v1-37-sneak-peek/&#34;&gt;блозі про застарівання та видалення&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;deprecation-of-kube-dns&#34;&gt;Застарівання &lt;code&gt;kube-dns&lt;/code&gt;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#deprecation-of-kube-dns&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;CoreDNS є стандартною надбудовою для кластерного DNS, починаючи з версії Kubernetes v1.113, і з того часу &lt;code&gt;kube-dns&lt;/code&gt; не встигає за ним; такі функції, як EndpointSlices та сервіси з подвійним стеком, у ньому недоступні.&lt;/p&gt;
&lt;p&gt;Kubernetes вже вивів kube-dns субпроєкт і виділив node-local-dns в окремий &lt;a href=&#34;https://github.com/kubernetes-sigs/node-local-dns&#34;&gt;репозиторій&lt;/a&gt;, де він продовжує підтримуватися і працює з CoreDNS. Очікується, що нові пакети для kube-dns не будуть збиратися після v1.40.&lt;/p&gt;
&lt;p&gt;Якщо ви все ще використовуєте &lt;code&gt;kube-dns&lt;/code&gt;, &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/tasks/administer-cluster/coredns/&#34;&gt;почніть планувати міграцію ваших кластерів на CoreDNS&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;deprecating-kube-proxy-s-support-for-ipvs-mode&#34;&gt;Припинення підтримки режиму &lt;code&gt;ipvs&lt;/code&gt; у &lt;code&gt;kube-proxy&lt;/code&gt;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#deprecating-kube-proxy-s-support-for-ipvs-mode&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Підтримка режиму &lt;code&gt;ipvs&lt;/code&gt; в &lt;code&gt;kube-proxy&lt;/code&gt; була введена в v1.8 для вирішення вузьких місць продуктивності &lt;code&gt;iptables&lt;/code&gt;. Однак, оскільки kernel &lt;code&gt;ipvs&lt;/code&gt; API самостійно не може повністю реалізувати Kubernetes Services, режим &lt;code&gt;ipvs&lt;/code&gt; продовжує використовувати &lt;code&gt;iptables&lt;/code&gt; під капотом (&lt;a href=&#34;https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3866-nftables-proxy/README.md#the-ipvs-mode-of-kube-proxy-will-not-save-us&#34;&gt;KEP-3866, &amp;quot;The ipvs mode of kube-proxy will not save us&amp;quot;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Кластери, що запускають &lt;code&gt;kube-proxy&lt;/code&gt; в режимі &lt;code&gt;ipvs&lt;/code&gt; (або mode: &lt;code&gt;ipvs&lt;/code&gt; в KubeProxyConfiguration), тепер логують попередження про застарівання при запуску. Графік застарівання виглядає так:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;До v1.40, режим &lt;code&gt;ipvs&lt;/code&gt; для &lt;code&gt;kube-proxy&lt;/code&gt; очікується стандартно вимкненим (його все ще можна вибірково включати через функціональну можливість)&lt;/li&gt;
&lt;li&gt;До v1.43, підтримка режиму &lt;code&gt;ipvs&lt;/code&gt; буде видалена повністю &lt;a href=&#34;https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/5495-deprecate-ipvs-mode-in-kube-proxy/README.md#graduation-criteria&#34;&gt;KEP #5495, Graduation Criteria&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Для підтвердження того, який режим ви зараз використовуєте, виконайте:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n kube-system get configmap kube-proxy -o &lt;span class=&#34;nv&#34;&gt;jsonpath&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ʼ&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;.data.config&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;conf&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;ʼ &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep ʼmode:ʼ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Щоб зрозуміти обґрунтування цього застарівання, дивіться &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5495/&#34;&gt;KEP #5495&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;kubectl-kubectl-run-filename-f-to-be-deprecated&#34;&gt;&lt;code&gt;kubectl&lt;/code&gt;: прапорець &lt;code&gt;kubectl run --filename/-f&lt;/code&gt; застаріває&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#kubectl-kubectl-run-filename-f-to-be-deprecated&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Прапорець &lt;code&gt;--filename&lt;/code&gt; (або &lt;code&gt;-f&lt;/code&gt;) для &lt;code&gt;kubectl run&lt;/code&gt; оголошується застарілим, оскільки генерований pod завжди будується виключно з CLI аргументів на кшталт &lt;code&gt;NAME&lt;/code&gt; та &lt;code&gt;--image&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Дивіться &lt;a href=&#34;https://github.com/kubernetes/kubernetes/issues/138671&#34;&gt;kubernetes/kubernetes#138671&lt;/a&gt; для оригінального issue та обговорення.&lt;/p&gt;
&lt;h3 id=&#34;kubelet-static-pods-can-no-longer-reference-secrets-or-configmaps&#34;&gt;&lt;code&gt;kubelet&lt;/code&gt;: статичні Podʼи більше не можуть посилатися на Secrets або ConfigMaps&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#kubelet-static-pods-can-no-longer-reference-secrets-or-configmaps&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Статичні Podʼи ніколи не призначалися для читання API-ресурсів безпосередньо, оскільки вони не створюються через API-сервер — але баг дозволяв їм посилатися на Secrets або ConfigMaps через поля на кшталт &lt;code&gt;configMapRef&lt;/code&gt; або &lt;code&gt;secretRef&lt;/code&gt;. Цей баг тепер виправлений: починаючи з v1.37 ці посилання суворо заборонені, а функціональна можливість &lt;code&gt;PreventStaticPodAPIReferences&lt;/code&gt;, що раніше дозволяв відмовитися від обмеження, був видалений.&lt;/p&gt;
&lt;p&gt;Дивіться &lt;a href=&#34;https://github.com/kubernetes/kubernetes/issues/140226&#34;&gt;kubernetes/kubernetes#140226&lt;/a&gt; для оригінального issue та обговорення.&lt;/p&gt;
&lt;h3 id=&#34;ongoing-major-change-future-removal-of-cgroup-v1-support&#34;&gt;Поточна велика зміна: майбутнє видалення підтримки cgroup v1&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#ongoing-major-change-future-removal-of-cgroup-v1-support&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Оскільки сучасні Linux дистрибутиви та рушії виконання контейнерів стандартно використовують &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/architecture/cgroups/&#34;&gt;cgroup v2&lt;/a&gt;, підтримка застарілих cgroup v1 офіційно виводиться з експлуатації. З випуску v1.35 налаштування &lt;code&gt;failCgroupV1&lt;/code&gt; типово дорівнює true. Отже, &lt;code&gt;kubelet&lt;/code&gt; не зможе ініціалізуватися на будь-яких вузлах, що все ще покладаються на cgroup v1, якщо не застосовано явний перевизначення конфігурації.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;apiVersion&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;kubelet.config.k8s.io/v1beta1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;kind&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;KubeletConfiguration&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;failCgroupV1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# тимчасове перевизначення&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Використання цього перевизначення слід розглядати як короткострокове виправлення. Розширені можливості керування ресурсами, такі як memory QoS та in-place масштабування для memory-backed томів, працюють лише на cgroups v2. Хоча перевизначення залишається доступним у Kubernetes v1.37, користувачів заохочують мігрувати на cgroups v2, оскільки підтримка cgroups v1 планується бути видаленою у майбутньому випуску.&lt;/p&gt;
&lt;p&gt;Щоб дізнатися більше про це застарівання, зверніться до &lt;a href=&#34;https://www.kubernetes.dev/resources/keps/5573/&#34;&gt;KEP #5573&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;release-notes&#34;&gt;Примітки до випуску&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-notes&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Перегляньте повні деталі релізу Kubernetes v1.37 в наших &lt;a href=&#34;https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.37.md&#34;&gt;примітках до випуску&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;availability&#34;&gt;Доступність&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#availability&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/releases/1.37/&#34;&gt;Kubernetes v1.37&lt;/a&gt; доступний для завантаження з &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/releases/download/&#34;&gt;сторінки завантаження Kubernetes&lt;/a&gt; або безпосередньо з &lt;a href=&#34;https://github.com/kubernetes/kubernetes/releases/tag/v1.37.0&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Щоб розпочати роботу з Kubernetes, перегляньте &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/docs/tutorials/&#34;&gt;ці настанови&lt;/a&gt; або запустіть локальні Kubernetes кластери за допомогою &lt;a href=&#34;https://minikube.sigs.k8s.io/&#34;&gt;minikube&lt;/a&gt;. Ви також можете легко встановити v1.37 за допомогою &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/setup/independent/create-cluster-kubeadm/&#34;&gt;kubeadm&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;release-team&#34;&gt;Команда випуску&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#release-team&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Kubernetes можливий лише завдяки підтримці, відданості та важкій роботі своєї спільноти. Кожна команда випуску складається з відданих волонтерів спільноти, які працюють разом, щоб створити багато частин, що складають Kubernetes релізи, на які ви покладаєтеся.&lt;/p&gt;
&lt;p&gt;Це вимагає спеціалізованих навичок людей з усіх куточків нашої спільноти, від самого коду до його документації та управління проєктом.&lt;/p&gt;
&lt;p&gt;Ми хотіли б подякувати всій &lt;a href=&#34;https://github.com/kubernetes/sig-release/blob/master/releases/release-1.37/release-team.md&#34;&gt;команді, що працювала над випуском&lt;/a&gt; за години наполегливої праці, завдяки яким випуск Kubernetes v1.37 став доступним для нашої спільноти.&lt;/p&gt;
&lt;p&gt;До складу команди з випуску входять як новачки, які вперше беруть участь у проєкті, так і досвідчені керівники команд, які вже брали участь у кількох циклах випуску.&lt;/p&gt;
&lt;p&gt;Особлива подяка нашому керівнику випуску, &lt;a href=&#34;https://github.com/dipesh-rawat&#34;&gt;Діпешу Равату&lt;/a&gt;, за підтримку
протягом успішного циклу випуску, за те, що він відстоював наші інтереси, дбав про те, щоб ми всі могли зробити свій внесок якнайкраще, та
спонукав нас вдосконалювати процес випуску.&lt;/p&gt;
&lt;h3 id=&#34;project-velocity&#34;&gt;Швидкість проєкту&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#project-velocity&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Проєкт CNCF K8s &lt;a href=&#34;https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&amp;var-period=m&amp;var-repogroup_name=All&#34;&gt;DevStats&lt;/a&gt; агрегує ряд цікавих даних, повʼязаних із швидкістю Kubernetes та різних субпроєктів.&lt;/p&gt;
&lt;p&gt;Це включає все від індивідуальних внесків до кількості компаній, що роблять внесок, і є ілюстрацією глибини та широти зусиль, що йдуть на еволюцію цієї екосистеми.&lt;/p&gt;
&lt;p&gt;У циклі релізу v1.37, що тривав 15 тижнів з 18 травня 2026 року по 26 серпня 2026 року, внески в Kubernetes досягли максимуму у 212 різних компаній та 1,754 окремих осіб.&lt;/p&gt;
&lt;p&gt;Джерело цих даних:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&amp;from=1779058800000&amp;to=1787781600000&amp;var-period=d28&amp;var-repogroup_name=All&amp;var-repo_name=kubernetes%2Fkubernetes&#34;&gt;Компанії, що роблять внесок у Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&amp;from=1779055200000&amp;to=1787781600000%20&amp;var-period=d28&amp;var-repogroup_name=All&amp;var-repo_name=kubernetes%2Fkubernetes&#34;&gt;Загальні внески екосистеми&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Під внеском ми маємо на увазі, коли хтось виконує коміт, проводить рецензію коду, залишає коментар, створює тікет або PR, рецензує PR (включно з блогами та документацією) або коментує тікети та PR.&lt;/p&gt;
&lt;p&gt;Якщо ви бажаєте долучитися до проєкту, перегляньте нашу сторінку &lt;a href=&#34;https://www.kubernetes.dev/docs/guide/#getting-started&#34;&gt;«Як розпочати»&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;event-updates&#34;&gt;Події&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#event-updates&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Дізнайтесь про майбутні KubeCon по всьому світу:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.lfopensource.cn/kubecon-cloudnativecon-openinfra-summit-pytorch-conference-china/&#34;&gt;KubeCon + CloudNativeCon China&lt;/a&gt;: 7–9 вересня 2026, Шанхай, Китай&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/&#34;&gt;KubeCon + CloudNativeCon North America&lt;/a&gt;: 9–12 листопада 2026, Солт-Лейк-Сіті, США&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Дізнайтесь про майбутні Kubernetes Community Days (KCDs), які відбуватимуться до кінця 2026 року:&lt;/p&gt;
&lt;h4 id=&#34;september-2026&#34;&gt;Вересень 2026&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#september-2026&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-south-korea-presents-kcd-x-ceph-x-openinfra-day-korea-2026/&#34;&gt;KCD x Ceph x OpenInfra Day Korea&lt;/a&gt;: 1 вересня 2026, Сеул, Південна Корея&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-sf-bay-area-presents-kcd-san-francisco-bay-area-2026/&#34;&gt;KCD San Francisco Bay Area&lt;/a&gt;: 1 вересня 2026, Маунтн-Вʼю, США&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-washington-dc-presents-kcd-washington-dc-2026/&#34;&gt;KCD Washington DC&lt;/a&gt;: 15 вересня 2026, Вашингтон, округ Колумбія, США&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-gujarat-presents-kcd-gujarat-2026/&#34;&gt;KCD Gujarat&lt;/a&gt;: 19 вересня 2026, Ахмедабад, Індія&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-brasil-presents-kcd-sao-paulo-2026/&#34;&gt;KCD São Paulo&lt;/a&gt;: 26 вересня 2026, Сан-Паулу, Бразилія&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-sofia-presents-kubernetes-community-days-sofia-2026/&#34;&gt;KCD Sofia&lt;/a&gt;: 29 вересня 2026, Софія, Болгарія&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;october-2026&#34;&gt;Жовтень 2026&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#october-2026&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-uk-presents-kubernetes-community-days-uk-edinburgh-2026/&#34;&gt;KCD UK – Edinburgh&lt;/a&gt;: 19–20 жовтня 2026, Единбург, Велика Британія&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-nigeria-presents-kcd-nigeria-2026-telling-the-african-cloud-native-story/&#34;&gt;KCD Nigeria&lt;/a&gt;: 24 жовтня 2026, Лагос, Нігерія&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;november-2026&#34;&gt;Листопад 2026&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#november-2026&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-porto-presents-kcd-porto-2026-collab-with-devops-days-portugal/&#34;&gt;KCD Porto&lt;/a&gt;: 19–20 листопада 2026, Порто, Португалія&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sessionize.com/kcd-hangzhou-2026/&#34;&gt;KCD Hangzhou&lt;/a&gt;: 28 листопада 2026, Ханчжоу, Китай&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;december-2026&#34;&gt;Грудень 2026&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#december-2026&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-suisse-romande-presents-kcd-suisse-romande-2026/&#34;&gt;KCD Suisse Romande&lt;/a&gt;: 9–10 грудня 2026, Мейрін, Швейцарія&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-provence-presents-kcd-provence-2026/&#34;&gt;KCD Provence&lt;/a&gt;: 10 грудня 2026, Екс-ан-Прованс, Франція&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://community2.cncf.io/events/details/cncf-kcd-florida-presents-kcd-florida-2026-miami/&#34;&gt;KCD Florida – Miami&lt;/a&gt;: 11 грудня 2026, Маями, США&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Актуальну інформацію про заходи можна знайти на &lt;a href=&#34;https://community2.cncf.io/events/#/list&#34;&gt;сторінці заходів CNCF&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;upcoming-release-webinar&#34;&gt;Вебінар присвячений релізу&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#upcoming-release-webinar&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Приєднуйтесь до членів команди випуску Kubernetes v1.37 у середу, 23 вересня 2026 о 16:00 (UTC), щоб дізнатися про головні моменти цього релізу. Для отримання інформації та реєстрації відвідайте &lt;a href=&#34;https://community2.cncf.io/events/details/cncf-cncf-online-programs-presents-cloud-native-live-kubernetes-v137-webinar/&#34;&gt;сторінку події на сайті CNCF Online Programs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;get-involved&#34;&gt;Приєднуйтесь&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#get-involved&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Найпростіший спосіб залучитися до Kubernetes — приєднатися до однієї з багатьох &lt;a href=&#34;https://kubernetes.dev/community/community-groups/sigs/&#34;&gt;Special Interest Groups&lt;/a&gt; (SIGs), що відповідають вашим інтересам.&lt;/p&gt;
&lt;p&gt;Якщо ви не знаєте, з чого почати, приєднуйтесь до наших щомісячних навчальних семінарів для нових учасників &lt;a href=&#34;https://www.kubernetes.dev/docs/orientation/&#34;&gt;New Contributor Orientations&lt;/a&gt;, де ми розповідаємо учасникам спільноти про структуру проєкту та допоможемо вам зробити свій перший внесок у проєкт.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Прочитайте більше про те, як стати &lt;a href=&#34;https://www.kubernetes.dev/docs/guide/&#34;&gt;Kubernetes Contributor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Прочитайте більше про те, що відбувається з Kubernetes у нашому &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/&#34;&gt;блозі&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Приєднуйтесь до нас у &lt;a href=&#34;http://slack.k8s.io/&#34;&gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Слідкуйте за нами в &lt;a href=&#34;https://bsky.app/profile/kubernetes.io&#34;&gt;Bluesky&lt;/a&gt; для останніх оновлень&lt;/li&gt;
&lt;li&gt;Слідкуйте за нами в &lt;a href=&#34;https://www.linkedin.com/company/kubernetes/&#34;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Слідкуйте за нами в &lt;a href=&#34;https://x.com/kubernetesio&#34;&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Приєднуйтесь до обговорення спільноти в &lt;a href=&#34;https://discuss.kubernetes.io/&#34;&gt;Discuss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Задавайте питання (або відповідайте на них) на &lt;a href=&#34;http://stackoverflow.com/questions/tagged/kubernetes&#34;&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Поділіться вашою &lt;a href=&#34;https://www.cncf.io/case-studies/&#34;&gt;Kubernetes End User Story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Дізнайтеся більше про &lt;a href=&#34;https://github.com/kubernetes/sig-release/tree/master/release-team&#34;&gt;Kubernetes Release Team&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Попередній огляд Kubernetes v1.34</title>
      <link>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2025/07/28/kubernetes-v1-34-sneak-peek/</link>
      <pubDate>Mon, 28 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2025/07/28/kubernetes-v1-34-sneak-peek/</guid>
      <description>
        
        
        &lt;p&gt;Kubernetes v1.34 очікукється наприкінці серпня 2025 року. Хоча він не міститиме видалень чи застарівань, у ньому буде велика кількість покращень. Ось деякі з функцій, які нас найбільше зацікавили в цьому циклі!&lt;/p&gt;
&lt;p&gt;Зверніть увагу, що ця інформація відображає поточний стан розробки v1.34 і може змінитися до випуску нової версії.&lt;/p&gt;
&lt;h2 id=&#34;featured-enhancements-of-kubernetes-v1-34&#34;&gt;Основні покращення Kubernetes v1.34&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#featured-enhancements-of-kubernetes-v1-34&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Нижче наведено деякі з помітних покращень, які, ймовірно, будуть включені до випуску v1.34, але це не вичерпний перелік усіх запланованих змін, і вміст релізу може змінюватися.&lt;/p&gt;
&lt;h3 id=&#34;the-core-of-dra-targets-stable&#34;&gt;Ядро DRA переходить у стабільний стан&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#the-core-of-dra-targets-stable&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/scheduling-eviction/dynamic-resource-allocation/&#34;&gt;Динамічний розподіл ресурсів&lt;/a&gt; (DRA) забезпечує гнучкий спосіб категоризації, подання заявок та використання пристроїв, таких як GPU або спеціалізоване обладнання, у вашому кластері Kubernetes.&lt;/p&gt;
&lt;p&gt;З моменту випуску v1.30 DRA базується на заявках на пристрої із &lt;em&gt;структурованими параметрами&lt;/em&gt;, які є непрозорими для ядра Kubernetes. Відповідна пропозиція (&lt;a href=&#34;https://kep.k8s.io/4381&#34;&gt;KEP-4381&lt;/a&gt;) щодо покращення, була створена під впливом концепцій динамічного виділення сховищ. DRA зі структурованими параметрами використовує набір допоміжних API-типів: ResourceClaim, DeviceClass, ResourceClaimTemplate та ResourceSlice у групі &lt;code&gt;resource.k8s.io&lt;/code&gt;, а також розширює &lt;code&gt;.spec&lt;/code&gt; для Pod новим полем &lt;code&gt;resourceClaims&lt;/code&gt;. Ядро DRA планує перейти у стабільний стан у Kubernetes v1.34.&lt;/p&gt;
&lt;p&gt;З DRA драйвери пристроїв та адміністратори кластерів визначають класи пристроїв, доступні для використання. Робочі навантаження можуть подавати заявки на пристрої із зазначенням класу пристроїв у запитах. Kubernetes виділяє відповідні пристрої для конкретних заявок і розміщує відповідні Podʼи на вузлах, які мають доступ до виділених пристроїв. Ця система забезпечує гнучку фільтрацію пристроїв за допомогою CEL, централізовану категоризацію пристроїв та спрощені запити Podʼів.&lt;/p&gt;
&lt;p&gt;Після переходу цієї функції у стабільний стан API &lt;code&gt;resource.k8s.io/v1&lt;/code&gt; буде стандартно доступний.&lt;/p&gt;
&lt;h3 id=&#34;serviceaccount-tokens-image-pull-authentication&#34;&gt;Токени ServiceAccount для автентифікації для завантаження образів&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#serviceaccount-tokens-image-pull-authentication&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Інтеграція токенів &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/security/service-accounts/&#34;&gt;ServiceAccount&lt;/a&gt; для провайдерів облікових даних &lt;code&gt;kubelet&lt;/code&gt; ймовірно досягне бета-стадії та буде стандартно увімкнена у Kubernetes v1.34. Це дозволяє &lt;code&gt;kubelet&lt;/code&gt; використовувати ці токени для завантаження контейнерних образів з реєстрів, які потребують автентифікації.&lt;/p&gt;
&lt;p&gt;Підтримка вже існує як alpha і відстежується у &lt;a href=&#34;https://kep.k8s.io/4412&#34;&gt;KEP-4412&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Alpha-інтеграція дозволяє &lt;code&gt;kubelet&lt;/code&gt; використовувати короткострокові, токени ServiceAccount (з OIDC-сумісною семантикою) з автоматичною ротацією для автентифікації у реєстрі контейнерних образів. Кожен токен прив’язаний до відповідного Podʼа; механізм замінює потребу у довгострокових секретах для завантаження образів.&lt;/p&gt;
&lt;p&gt;Впровадження цього підходу знижує ризики безпеки, підтримує ідентичність на рівні робочого навантаження та зменшує операційні витрати. Це наближає автентифікацію при завантаженні образів до сучасних практик.&lt;/p&gt;
&lt;h3 id=&#34;pod-replacement-policy-for-deployment&#34;&gt;Політика заміни Pod в Deployment&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#pod-replacement-policy-for-deployment&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Після змін в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/workloads/controllers/deployment/&#34;&gt;Deployment&lt;/a&gt; завершення Podʼів може тривати певний час і споживати додаткові ресурси. У рамках &lt;a href=&#34;https://kep.k8s.io/3973&#34;&gt;KEP-3973&lt;/a&gt; буде додано поле &lt;code&gt;.spec.podReplacementPolicy&lt;/code&gt; (як alpha) для Deployment.&lt;/p&gt;
&lt;p&gt;Якщо функція увімкнена у вашому кластері, ви зможете обрати одну з двох політик:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;TerminationStarted&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Створює нові Podʼи, як тільки старі починають процес завершення роботи, що прискорює оновлення, але може збільшити споживання ресурсів.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;TerminationComplete&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Чекає повного завершення роботи старих Podʼів перед створенням нових, що забезпечує контрольоване споживання ресурсів.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Ця функція робить поведінку Deployment більш передбачуваною, дозволяючи обирати, коли створювати нові Podʼи, під час оновлення чи масштабування. Це корисно для кластерів із обмеженими ресурсами або для навантажень із тривалим часом завершенням.&lt;/p&gt;
&lt;p&gt;Очікується, що функція буде доступна як alpha і може бути увімкнена через функціональні можливості &lt;code&gt;DeploymentPodReplacementPolicy&lt;/code&gt; та &lt;code&gt;DeploymentReplicaSetTerminatingReplicas&lt;/code&gt; в API-сервері та kube-controller-manager.&lt;/p&gt;
&lt;h3 id=&#34;production-ready-tracing-for-kubelet-and-api-server&#34;&gt;Готовий до промислового використання трейсинг для &lt;code&gt;kubelet&lt;/code&gt; та API Server&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#production-ready-tracing-for-kubelet-and-api-server&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Для вирішення проблеми налагодження на рівні вузла шляхом зіставлення розрізнених логів, &lt;a href=&#34;https://kep.k8s.io/2831&#34;&gt;KEP-2831&lt;/a&gt; забезпечує глибоке, контекстне розуміння роботи &lt;code&gt;kubelet&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Функція інструментує критичні операції &lt;code&gt;kubelet&lt;/code&gt;, особливо gRPC-виклики до Container Runtime Interface (CRI), використовуючи стандарт OpenTelemetry. Це дозволяє операторам візуалізувати весь життєвий цикл подій (наприклад, запуск Podʼів) для визначення джерел затримок та помилок. Найпотужніша частина — передача trace ID у запитах до контейнерного рушія, що дозволяє їм зв’язувати свої власні відрізки.&lt;/p&gt;
&lt;p&gt;Це доповнюється паралельним покращенням, &lt;a href=&#34;https://kep.k8s.io/647&#34;&gt;KEP-647&lt;/a&gt;, яке приносить такі ж можливості трейсингу до API-сервера Kubernetes. Разом ці покращення забезпечують більш цілісний, наскрізний огляд подій, спрощуючи пошук затримок та помилок від панелі управління до вузла. Обидві функції пройшли офіційний процес релізу Kubernetes. &lt;a href=&#34;https://kep.k8s.io/2831&#34;&gt;KEP-2831&lt;/a&gt; був представлений як alpha у v1.25, а &lt;a href=&#34;https://kep.k8s.io/647&#34;&gt;KEP-647&lt;/a&gt; — як alpha у v1.22. Обидва були підвищені до beta у v1.27. У v1.34 планується, що вони перейдуть у стабільний стан.&lt;/p&gt;
&lt;h3 id=&#34;prefersamezone-and-prefersamenode-traffic-distribution-for-service&#34;&gt;&lt;code&gt;PreferSameZone&lt;/code&gt; та &lt;code&gt;PreferSameNode&lt;/code&gt; для розподілу трафіку у Service&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#prefersamezone-and-prefersamenode-traffic-distribution-for-service&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Поле &lt;code&gt;spec.trafficDistribution&lt;/code&gt; у &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/services-networking/service/&#34;&gt;Service&lt;/a&gt; дозволяє вказати переваги щодо маршрутизації трафіку до точок доступу Service.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kep.k8s.io/3015&#34;&gt;KEP-3015&lt;/a&gt; визнає застарілим &lt;code&gt;PreferClose&lt;/code&gt; та додає два нових значення: &lt;code&gt;PreferSameZone&lt;/code&gt; та &lt;code&gt;PreferSameNode&lt;/code&gt;. &lt;code&gt;PreferSameZone&lt;/code&gt; еквівалентний поточному &lt;code&gt;PreferClose&lt;/code&gt;. &lt;code&gt;PreferSameNode&lt;/code&gt; надає перевагу надсиланню трафіку до точок доступу на тому ж вузлі, що й клієнт.&lt;/p&gt;
&lt;p&gt;Функція була представлена у v1.33 функціональною можливістю &lt;code&gt;PreferSameTrafficDistribution&lt;/code&gt;. У v1.34 вона планує перейти у beta зі стандартним її увімкненням.&lt;/p&gt;
&lt;h3 id=&#34;support-for-kyaml-a-kubernetes-dialect-of-yaml&#34;&gt;Підтримка KYAML: діалекту YAML для Kubernetes&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#support-for-kyaml-a-kubernetes-dialect-of-yaml&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;KYAML — це безпечніша та менш неоднозначна підмножина YAML, спеціально розроблена для Kubernetes. Незалежно від версії Kubernetes, ви зможете використовувати KYAML для написання маніфестів чи Helm-чартів. Ви можете писати KYAML і передавати його як вхідні дані у &lt;strong&gt;будь-яку&lt;/strong&gt; версію &lt;code&gt;kubectl&lt;/code&gt;, оскільки всі KYAML-файли також є валідними YAML. З kubectl v1.34 очікується можливість запитувати вивід у форматі KYAML (&lt;code&gt;kubectl get -o kyaml …&lt;/code&gt;). За бажанням, ви можете й надалі отримувати вихід у форматі JSON або YAML.&lt;/p&gt;
&lt;p&gt;KYAML вирішує специфічні проблеми YAML та JSON. У YAML значущі пробіли вимагають уважності до відступів та вкладеності, а необов’язкове взяття рядків в лапки може призвести до неочікуваного приведення типів (наприклад, &lt;a href=&#34;https://hitchdev.com/strictyaml/why/implicit-typing-removed/&#34;&gt;&amp;quot;The Norway Bug&amp;quot;&lt;/a&gt;). JSON не підтримує коментарі та має суворі вимоги до ком та ключів в лапках.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kep.k8s.io/5295&#34;&gt;KEP-5295&lt;/a&gt; представляє KYAML, який вирішує основні проблеми:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Обовʼязкове використання подвійних лапок для рядкових (string) значень&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Не вказувати ключі в лапках, якщо вони не є потенційно неоднозначними&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Завжди використовує &lt;code&gt;{}&lt;/code&gt; для відображень (асоціативних масивів)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Завжди використовує &lt;code&gt;[]&lt;/code&gt; для списків&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Це схоже на JSON, але на відміну від JSON, KYAML підтримує коментарі, дозволяє коми у кінці та не вимагає лапок для ключів.&lt;/p&gt;
&lt;p&gt;Очікуємо, що KYAML буде представлений як новий формат виводу для &lt;code&gt;kubectl&lt;/code&gt; v1.34. Як і для всіх цих функцій, жодна з них не гарантована; слідкуйте за оновленнями!&lt;/p&gt;
&lt;p&gt;KYAML є і залишатиметься &lt;strong&gt;строгою підмножиною YAML&lt;/strong&gt;, що гарантує можливість парсингу KYAML-документів будь-яким YAML-парсером. Kubernetes не вимагає спеціального формату KYAML для вхідних даних, і змінювати це не планується.&lt;/p&gt;
&lt;h3 id=&#34;fine-grained-autoscaling-control-with-hpa-configurable-tolerance&#34;&gt;Точне регулювання автоматичного масштабування з налаштовуваною толерантністю HPA&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#fine-grained-autoscaling-control-with-hpa-configurable-tolerance&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://kep.k8s.io/4951&#34;&gt;KEP-4951&lt;/a&gt; додає можливість налаштовувати толерантність автомасштабування для кожного HPA окремо, замість стандартного кластерного значення 10%, яке часто є занадто грубим для різних навантажень. Покращення додає необов’язкове поле &lt;code&gt;tolerance&lt;/code&gt; до секцій &lt;code&gt;spec.behavior.scaleUp&lt;/code&gt; та &lt;code&gt;spec.behavior.scaleDown&lt;/code&gt; HPA, дозволяючи різні значення толерантності для масштабування вгору та вниз, що особливо корисно, оскільки чутливість до масштабування вгору зазвичай важливіша для обробки піків трафіку.&lt;/p&gt;
&lt;p&gt;Функція була випущена як alpha у Kubernetes v1.33 з функціональною можливістю &lt;code&gt;HPAConfigurableTolerance&lt;/code&gt;, а у v1.34 планує перейти у beta. Це покращення допомагає вирішити проблеми масштабування для великих розгортань, де толерантність для масштабування вниз на 10% може означати те, що в роботі залишаться сотні зайвих Podʼів. Новий підхід дозволяє оптимізувати поведінку для кожного навантаження окремо.&lt;/p&gt;
&lt;h2 id=&#34;want-to-learn-more&#34;&gt;Хочете дізнатися більше?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#want-to-learn-more&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Нові функції та застарівання також оголошуються у нотатках до релізу Kubernetes. Офіційний анонс новинок у &lt;a href=&#34;https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md&#34;&gt;Kubernetes v1.34&lt;/a&gt; буде частиною CHANGELOG для цього випуску.&lt;/p&gt;
&lt;p&gt;Випуск Kubernetes v1.34 заплановано на &lt;strong&gt;середу, 27 серпня 2025 року&lt;/strong&gt;. Слідкуйте за оновленнями!&lt;/p&gt;
&lt;h2 id=&#34;get-involved&#34;&gt;Долучайтеся&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#get-involved&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Найпростіший спосіб долучитися до Kubernetes — приєднатися до однієї з багатьох &lt;a href=&#34;https://github.com/kubernetes/community/blob/master/sig-list.md&#34;&gt;Special Interest Groups&lt;/a&gt; (SIG), які відповідають вашим інтересам. Маєте щось, чим хочете поділитися з Kubernetes-спільнотою? Висловіть свою думку на щотижневій &lt;a href=&#34;https://github.com/kubernetes/community/tree/master/communication&#34;&gt;community meeting&lt;/a&gt; та через канали нижче. Дякуємо за ваші відгуки та підтримку!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Слідкуйте за нами у Bluesky &lt;a href=&#34;https://bsky.app/profile/kubernetes.io&#34;&gt;@kubernetes.io&lt;/a&gt; для останніх новин&lt;/li&gt;
&lt;li&gt;Долучайтеся до обговорень на &lt;a href=&#34;https://discuss.kubernetes.io/&#34;&gt;Discuss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Долучайтеся до спільноти у &lt;a href=&#34;http://slack.k8s.io/&#34;&gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ставте питання (або відповідайте на них) на &lt;a href=&#34;https://serverfault.com/questions/tagged/kubernetes&#34;&gt;Server Fault&lt;/a&gt; або &lt;a href=&#34;http://stackoverflow.com/questions/tagged/kubernetes&#34;&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Поділіться своєю Kubernetes &lt;a href=&#34;https://docs.google.com/a/linuxfoundation.org/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform&#34;&gt;історією&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Читайте більше про події у Kubernetes на &lt;a href=&#34;https://kubernetes.io/blog/&#34;&gt;блозі&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Дізнайтеся більше про &lt;a href=&#34;https://github.com/kubernetes/sig-release/tree/master/release-team&#34;&gt;Kubernetes Release Team&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Огляд Kubernetes v1.30</title>
      <link>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2024/03/12/kubernetes-1-30-upcoming-changes/</link>
      <pubDate>Tue, 12 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/uk/blog/2024/03/12/kubernetes-1-30-upcoming-changes/</guid>
      <description>
        
        
        &lt;h2 id=&#34;a-quick-look-exciting-changes-in-kubernetes-v1.30&#34;&gt;Швидкий огляд: зміни у Kubernetes v1.30&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#a-quick-look-exciting-changes-in-kubernetes-v1.30&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Новий рік, новий реліз Kubernetes. Ми на половині релізного циклу і маємо чимало цікавих та чудових поліпшень у версії v1.30. Від абсолютно нових можливостей у режимі альфа до вже сталих функцій, які переходять у стабільний режим, а також довгоочікуваних поліпшень — цей випуск має щось для усіх, на що варто звернути увагу!&lt;/p&gt;
&lt;p&gt;Щоб підготувати вас до офіційного випуску, ось короткий огляд удосконалень, про які ми найбільше хочемо розповісти!&lt;/p&gt;
&lt;h2 id=&#34;major-changes-for-kubernetes-v1.30&#34;&gt;Основні зміни для Kubernetes v1.30&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#major-changes-for-kubernetes-v1.30&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;structured-parameters-for-dynamic-resource-allocation-kep-4381-https-kep-k8s-io-4381&#34;&gt;Структуровані параметри для динамічного розподілу ресурсів (&lt;a href=&#34;https://kep.k8s.io/4381&#34;&gt;KEP-4381&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#structured-parameters-for-dynamic-resource-allocation-kep-4381-https-kep-k8s-io-4381&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/scheduling-eviction/dynamic-resource-allocation/&#34;&gt;Динамічний розподіл ресурсів&lt;/a&gt; було додано до Kubernetes у версії v1.26 у режимі альфа. Він визначає альтернативу традиційному API пристроїв для запиту доступу до ресурсів сторонніх постачальників. За концепцією, динамічний розподіл ресурсів використовує параметри для ресурсів, що є абсолютно непрозорими для ядра Kubernetes. Цей підхід створює проблему для Cluster Autoscaler (CA) чи будь-якого контролера вищого рівня, який повинен приймати рішення для групи Podʼів (наприклад, планувальник завдань). Він не може симулювати ефект виділення чи звільнення заявок з плином часу. Інформацію для цього можуть надавати лише драйвери DRA сторонніх постачальників.&lt;/p&gt;
&lt;p&gt;Структуровані параметри для динамічного розподілу ресурсів — це розширення оригінальної реалізації, яке розвʼязує цю проблему, створюючи фреймворк для підтримки параметрів заявок, що є більш прозорими. Замість обробки семантики всіх параметрів заявок самостійно, драйвери можуть керувати ресурсами та описувати їх, використовуючи конкретну &amp;quot;структуровану модель&amp;quot;, заздалегідь визначену Kubernetes. Це дозволить компонентам, які обізнані з цією &amp;quot;структурованою моделлю&amp;quot;, приймати рішення щодо цих ресурсів без залучення зовнішнього контролера. Наприклад, планувальник може швидко обробляти заявки без зайвої комунікації з драйверами динамічного розподілу ресурсів. Робота, виконана для цього релізу, зосереджена на визначенні необхідного фреймворку для активації різних &amp;quot;структурованих моделей&amp;quot; та реалізації моделі &amp;quot;пойменованих ресурсів&amp;quot;. Ця модель дозволяє перераховувати окремі екземпляри ресурсів та, на відміну від традиційного API пристроїв, додає можливість вибору цих екземплярів індивідуально за атрибутами.&lt;/p&gt;
&lt;h3 id=&#34;node-memory-swap-support-kep-2400-https-kep-k8s-io-2400&#34;&gt;Підтримка своп-памʼяті на вузлах (&lt;a href=&#34;https://kep.k8s.io/2400&#34;&gt;KEP-2400&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#node-memory-swap-support-kep-2400-https-kep-k8s-io-2400&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;У Kubernetes v1.30 підтримка своп-памʼяті на вузлах Linux отримує значущі зміни в способі її функціонування, з основним акцентом на покращенні стабільності системи. В попередніх версіях Kubernetes функція &lt;code&gt;NodeSwap&lt;/code&gt; була типово вимкненою, а при увімкненні використовувала поведінку &lt;code&gt;UnlimitedSwap&lt;/code&gt;. З метою досягнення кращої стабільності, поведінка &lt;code&gt;UnlimitedSwap&lt;/code&gt; (яка може компрометувати стабільність вузла) буде видалена у версії v1.30.&lt;/p&gt;
&lt;p&gt;Оновлена, все ще бета-версія підтримки своп на вузлах Linux буде стандартно доступною. Однак типовою поведінкою буде запуск вузла в режимі &lt;code&gt;NoSwap&lt;/code&gt; (а не &lt;code&gt;UnlimitedSwap&lt;/code&gt;). У режимі &lt;code&gt;NoSwap&lt;/code&gt; kubelet підтримує роботу на вузлі, де активний простір своп, але Podʼи не використовують жодного page-файлу. Для того, щоб kubelet працював на цьому вузлі, вам все ще потрібно встановити &lt;code&gt;--fail-swap-on=false&lt;/code&gt;. Однак велика зміна стосується іншого режиму: &lt;code&gt;LimitedSwap&lt;/code&gt;. У цьому режимі kubelet фактично використовує page-файл на вузлі та дозволяє Podʼам виділяти деяку частину їхньої віртуальної памʼяті. Контейнери (і їхні батьківські Podʼи) не мають доступу до своп поза їхнім обмеженням памʼяті, але система все ще може використовувати простір своп, якщо він доступний.&lt;/p&gt;
&lt;p&gt;Група Kubernetes Node (SIG Node) також оновить документацію, щоб допомогти вам зрозуміти, як використовувати оновлену реалізацію, на основі відгуків від кінцевих користувачів, учасників та широкої спільноти Kubernetes.&lt;/p&gt;
&lt;p&gt;Для отримання додаткових відомостей про підтримку своп на вузлах Linux в Kubernetes, прочитайте попередній &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/blog/2023/08/24/swap-linux-beta/&#34;&gt;пост блогу&lt;/a&gt; чи &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/architecture/nodes/#swap-memory&#34;&gt;документацію про своп на вузлах&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;support-user-namespaces-in-pods-kep-127-https-kep-k8s-io-127&#34;&gt;Підтримка просторів імен користувачів в Pod (&lt;a href=&#34;https://kep.k8s.io/127&#34;&gt;KEP-127&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#support-user-namespaces-in-pods-kep-127-https-kep-k8s-io-127&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/concepts/workloads/pods/user-namespaces&#34;&gt;Простори імен користувачів&lt;/a&gt; — це функція лише для Linux, яка краще ізолює Podʼи для запобігання або помʼякшення кількох важливих CVEs із високим/критичним рейтингом, включаючи &lt;a href=&#34;https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv&#34;&gt;CVE-2024-21626&lt;/a&gt;, опубліковану у січні 2024 року. У Kubernetes 1.30 підтримка просторів імен користувачів переходить у бета-версію і тепер підтримує Podʼи з томами та без них, власні діапазони UID/GID та багато іншого!&lt;/p&gt;
&lt;h3 id=&#34;structured-authorization-configuration-kep-3221-https-kep-k8s-io-3221&#34;&gt;Конфігурація структурованої авторизації (&lt;a href=&#34;https://kep.k8s.io/3221&#34;&gt;KEP-3221&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#structured-authorization-configuration-kep-3221-https-kep-k8s-io-3221&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Підтримка &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/authorization/#configuring-the-api-server-using-an-authorization-config-file&#34;&gt;конфігурації структурованої авторизації&lt;/a&gt; переходить у бета-версію та буде типово увімкненою. Ця функція дозволяє створювати ланцюги авторизації з кількома вебхуками із чітко визначеними параметрами, які перевіряють запити в певному порядку та надають деталізований контроль — такий, як явна відмова у випадку невдач. Використання конфігураційного файлу навіть дозволяє вказати правила &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/using-api/cel/&#34;&gt;CEL&lt;/a&gt; для попередньої фільтрації запитів, перш ніж вони будуть відправлені до вебхуків, допомагаючи вам запобігти непотрібним викликам. Сервер API також автоматично перезавантажує ланцюг авторизатора при зміні конфігураційного файлу.&lt;/p&gt;
&lt;p&gt;Вам необхідно вказати шлях до конфігурації авторизації, використовуючи аргумент командного рядка &lt;code&gt;--authorization-config&lt;/code&gt;. Якщо ви хочете продовжувати використовувати аргументи командного рядка замість конфігураційного файлу, вони продовжать працювати як є. Щоб отримати доступ до нових можливостей вебхуків авторизації, таких як кілька вебхуків, політика невдачі та правила попередньої фільтрації, перейдіть до використання параметрів у файлі &lt;code&gt;--authorization-config&lt;/code&gt;. З версії Kubernetes 1.30 формат конфігураційного файлу є бета-рівнем, і потрібно вказувати лише &lt;code&gt;--authorization-config&lt;/code&gt;, оскільки feature gate вже увімкнено. Приклад конфігурації із всіма можливими значеннями наведено в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/authorization/#configuring-the-api-server-using-an-authorization-config-file&#34;&gt;документації з авторизації&lt;/a&gt;. Докладніше читайте в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/authorization/#configuring-the-api-server-using-an-authorization-config-file&#34;&gt;документації з авторизації&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;container-resource-based-pod-autoscaling-kep-1610-https-kep-k8s-io-1610&#34;&gt;Автомасштабування Podʼів на основі ресурсів контейнера (&lt;a href=&#34;https://kep.k8s.io/1610&#34;&gt;KEP-1610&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#container-resource-based-pod-autoscaling-kep-1610-https-kep-k8s-io-1610&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Горизонтальне автомасштабування Podʼів на основі метрик &lt;code&gt;ContainerResource&lt;/code&gt; перейде у стабільний стан у версії v1.30. Це нова функціональність для HorizontalPodAutoscaler дозволяє налаштовувати автоматичне масштабування на основі використання ресурсів для окремих контейнерів, а не загального використання ресурсів для всіх контейнерів у Podʼіві. Докладні відомості можна знайти у нашій &lt;a href=&#34;2023/05/02/hpa-container-resource-metric/&#34;&gt;попередній статті&lt;/a&gt; або в &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/tasks/run-application/horizontal-pod-autoscale/#container-resource-metrics&#34;&gt;метриках ресурсів контейнера&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cel-for-admission-control-kep-3488-https-kep-k8s-io-3488&#34;&gt;CEL для керування допуском (&lt;a href=&#34;https://kep.k8s.io/3488&#34;&gt;KEP-3488&lt;/a&gt;)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#cel-for-admission-control-kep-3488-https-kep-k8s-io-3488&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Інтеграція Common Expression Language (CEL) для керування допуском у Kubernetes вводить більш динамічний та виразний спосіб оцінки запитів на допуск. Ця функція дозволяє визначати та застосовувати складні, деталізовані політики безпосередньо через API Kubernetes, підвищуючи безпеку та здатність до управління без втрати продуктивності чи гнучкості.&lt;/p&gt;
&lt;p&gt;Додавання CEL до керування допуском у Kubernetes дає адміністраторам кластерів можливість створювати складні правила, які можуть оцінювати вміст API-запитів на основі бажаного стану та політик кластера, не вдаючись до вебхуків, які використовують контролери доступу. Цей рівень контролю є важливим для забезпечення цілісності, безпеки та ефективності операцій у кластері, роблячи середовища Kubernetes більш надійними та адаптованими до різних сценаріїв використання та вимог. Для отримання докладної інформації щодо використання CEL для керування допуском дивіться &lt;a href=&#34;https://deploy-preview-57339--kubernetes-io-main-staging.netlify.app/docs/reference/access-authn-authz/validating-admission-policy/&#34;&gt;документацію API&lt;/a&gt; для ValidatingAdmissionPolicy.&lt;/p&gt;
&lt;p&gt;Ми сподіваємося, що ви так само нетерпляче чекаєте на цей випуск, як і ми. Стежте за блогом, щоб дізнатись про офіційний випуск через кілька тижнів, де буде представлено ще більше відомостей!&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
