РАЗРАБОТКА

Kubernetes v1.37: 67 изменений, которые заметят операторы

67 улучшений вошли в Kubernetes v1.37 Garhwal: стабильный KYAML, beta для HPA scale-to-zero и новые инструменты для AI/ML-нагрузок.

✍️ Редакция iTech News | 12.09.2026 | ⏱ 4 мин | Источник: The New Stack
🐛

Kubernetes v1.37 вышел с 67 улучшениями: 16 функций получили статус Stable, 23 перешли в Beta, 27 появились в Alpha, еще одно изменение относится к deprecated/removal. Для русскоязычных платформенных команд это не релиз ради красивой цифры, а повод пересмотреть YAML-конфиги, автоскейлинг, метрики и планирование тяжелых AI/ML-нагрузок.

Релиз получил имя Garhwal — в честь региона в индийских Гималаях, сообщает The New Stack. В Kubernetes-релизах любят символику, но операторам сейчас интереснее не горы на логотипе, а то, что придется включать, тестировать и объяснять бизнесу, когда кластер снова попросит внимания в пятницу вечером.

Первый заметный пункт — KYAML дошел до Stable. Это более строгий и менее двусмысленный поднабор YAML для Kubernetes, придуманный как лекарство от типичных YAML-сюрпризов: чувствительности к пробелам, странного парсинга значений и знаменитой проблемы, когда строка вроде NO внезапно превращается в boolean. Важная деталь: KYAML не ломает совместимость. Каждый KYAML-файл остается валидным YAML, а существующие манифесты, пайплайны и инструменты не требуют переписывания. Для команд, у которых Kubernetes-конфигурация давно превратилась в археологический слой из Helm, Kustomize и ручных патчей, это редкий случай улучшения без немедленного переезда.

Вторая практичная история — resilient watch cache initialization, тоже в Stable. Kubernetes API server использует watch cache, чтобы эффективнее обслуживать запросы к состоянию кластера. Когда этот механизм ведет себя плохо при старте или восстановлении, крупные кластеры могут получить всплеск нагрузки на control plane и etcd. Новое поведение должно снизить риск таких отказов. Это не функция, которую покажут на демо с аплодисментами, но именно такие изменения отделяют живую production-платформу от красивой схемы в презентации.

Kubernetes v1.37 также продвигает тему автоскейлинга до нуля. HorizontalPodAutoscaler scale-to-zero перешел в Beta и включен по умолчанию для сценариев с object metrics или external metrics. Проще говоря, если нагрузка простаивает, поды можно увести в ноль, а затем поднять обратно при появлении работы. Для очередей, batch-процессов, внутренних сервисов с рваным трафиком и особенно дорогих GPU-задач это прямой разговор про деньги. Но есть и скучная сторона: метрики, cold start, readiness-пробы и лимиты на внешние зависимости придется проверять тщательнее, иначе экономия быстро превратится в жалобы пользователей.

AI/ML-нагрузки в релизе явно не на периферии. Gang scheduling перешел в Beta: Kubernetes получает более внятную модель для задач, где группа подов должна стартовать вместе, а не по одному в случайном порядке. Для распределенного обучения и HPC это критично: если часть подов уже заняла ресурсы, а остальные ждут, кластер может попасть в неэффективное состояние, где дорогое железо занято, но задача не продвигается. В Kubernetes v1.37 эта логика дополняется Workload API, PodGroup и workload-aware preemption, чтобы планировщик лучше понимал, когда вытеснение действительно помогает работе, а когда только шумит.

Еще один слой — Dynamic Resource Allocation. В релизе продолжается развитие DRA для устройств и расширенных ресурсов: от статуса ResourceClaim до device taints and tolerations и атрибутов NUMA. Для обычного CRUD-бэкенда это может звучать как дальняя комната машинного отделения. Для компаний, которые строят платформы под GPU, сетевые ускорители или специализированное железо, это уже не экзотика. Kubernetes постепенно учится описывать не только «CPU и память», но и более сложные ресурсы, которые нельзя нормально раздать старым способом через простые лимиты.

Операторам стоит заметить и метрики. metrics.k8s.io API получил статус Stable. Это API, на который опираются привычные инструменты вроде kubectl top и механика автоскейлинга. Отдельно в Beta перешло направление, где kubelet получает статистику контейнеров и подов через CRI, а не через cAdvisor как отдельный источник. Цель понятная: меньше дублей, меньше расхождений, один более очевидный путь данных от runtime к Kubernetes. Правда, эта возможность в v1.37 выключена по умолчанию и требует feature gate PodAndContainerStatsFromCRI.

Есть и изменение из разряда «проверьте старые привычки»: kube-dns объявлен deprecated. CoreDNS остается стандартным DNS-дополнением Kubernetes еще с версии v1.13, и сам факт deprecation скорее фиксирует реальность, чем ломает рынок. Но в инфраструктуре реальность часто отстает от документации на годы. Если где-то в наследуемом кластере еще живет kube-dns, Kubernetes v1.37 мягко, но довольно ясно намекает: пора планировать миграцию, пока это не стало пожарной задачей.

Главный вывод для команд не в том, что надо срочно включить все 67 пунктов. Релиз показывает, куда двигается Kubernetes: меньше терпимости к неоднозначной конфигурации, больше зрелости control plane, больше внимания к AI/ML-планированию и более аккуратная работа с ресурсами. Следующий спор внутри платформенных команд будет не о том, обновляться ли вообще, а о том, какие beta-функции уже достаточно полезны, чтобы рискнуть ими в production.

Поделиться: Telegram X LinkedIn