Начиная с версии Kubernetes 1.35, функция In-Place Pod Resize перешла в стабильную (GA). Теперь можно изменять ресурсы (CPU, память) у уже запущенных подов без их пересоздания.
➡️ Что такое изменение размера Pod?
Раньше для обновления ресурсов пода приходилось перезапускать все контейнеры внутри него — это вело к простою приложения, потере состояния и дополнительной нагрузке на кластер. Теперь можно изменить значения requests и limits на лету, и kubelet применит их без перезагрузки контейнеров.
➡️ Как это поможет?
— Ресурсы корректируются без сбоев
При изменении нагрузки можно увеличить или уменьшить ресурсы пода без перезапуска приложения. Например, если базе данных временно нужно больше памяти — просто обновите лимиты.
— Более мощное автоматическое масштабирование
VPA (Vertical Pod Autoscaler) теперь может работать эффективнее — он будет менять ресурсы подов на лету, а не только рекомендовать изменения, требующие перезапуска.
— Удовлетворение временных потребностей в ресурсах
Например, во время обработки пиковой нагрузки или ночных задач можно увеличить CPU, а затем вернуть обратно — без перезапуска сервиса.
➡️ Примеры использования:
— Ручное увеличение памяти для пода:
kubectl patch pod my-app-pod --type='merge' -p '{"spec":{"containers":[{"name":"app","resources":{"requests":{"memory":"512Mi"},"limits":{"memory":"1Gi"}}}]}}'
— Обновление ресурсов через Deployment:
Просто отредактируйте resources в манифесте и примените через kubectl apply. Поды обновятся на месте, если это поддерживается.
— Использование с VPA
Настройте VPA (Vertical Pod Autoscaling ) с режимом Auto или Recreate (теперь с минимальными перезапусками), и он будет автоматически подбирать ресурсы на основе метрик.
➡️ Дальнейшее развитие:
Планируется расширить поддержку для большего количества runtime, улучшить интеграцию с VPA и добавить возможность изменять другие параметры (например, дисковое пространство) без перезапуска.
In-Place Pod Resize — важный шаг к более гибкому и эффективному управлению ресурсами в Kubernetes. Теперь можно адаптироваться к нагрузке практически без downtime.
Подробнее в официальном блоге Kubernetes: In-Place Pod Resize GA in Kubernetes 1.35
#заметкиИнженера
