Kubernetes v1.36 внедряет возможность редактирования ресурсов подов для приостановленных заданий, улучшая управление нагрузками. Эта функция, ранее находившаяся в альфа-версии в v1.35, теперь доступна в бета-версии, позволяя администраторам кластеров изменять запросы и лимиты ресурсов, таких как CPU и GPU, когда задания приостановлены.
Как это работает
С нововведением все резервируемые ресурсы можно корректировать в шаблоне подов заданий, что особенно актуально для заданий, связанных с пакетной обработкой и машинным обучением. В таких случаях ресурсы могут изменяться в зависимости от текущей загрузки кластера и доступности аппаратных средств, таких как графические процессоры.
Ранее, если управляющий очередь, например Kueue, считал, что нужно изменить ресурсы приостановленного задания, единственным вариантом было удаление задания и его пересоздание, что влекло за собой потерю метаданных и истории выполнения. Теперь, благодаря новой функции, можно быстро обновить ресурсы без необходимости создания задания заново.
Кейс использования
Рассмотрим ситуацию, когда задание по обучению модели машинного обучения запрашивало 4 GPU, но управляющий кластером определил, что доступно только 2. Благодаря обновлению, теперь можно изменить ресурсы следующим образом, что позволяет заданию успешно продолжить выполнение:
apiVersion: batch/v1
kind: Job
metadata:
name: training-job-example-abcd123
labels:
app.kubernetes.io/name: trainer
spec:
suspend: true
template:
metadata:
annotations:
kubernetes.io/description: "ML training, ID abcd123"
spec:
containers:
- name: trainer
image: example-registry.example.com/training:2026-04-23T150405.678
resources:
requests:
cpu: "4"
memory: "16Gi"
example-hardware-vendor.com/gpu: "2"
limits:
cpu: "4"
memory: "16Gi"
example-hardware-vendor.com/gpu: "2"
restartPolicy: Never
Когда ресурсы обновляются, управляющий снова активирует задание, устанавливая spec.suspend в false, и новые поды создаются с изменёнными ресурсными спецификациями.
Значение для разработчиков
Для разработчиков и архитекторов облачных решений в России это нововведение предоставляет большую гибкость в управлении ресурсами кластера. Использование Mutable Pod Resources позволит более эффективно реагировать на изменяющиеся условия загрузки и требования к ресурсам, что, в свою очередь, приведет к повышению производительности приложений на базе Kubernetes.
Следующий шаг — наблюдать за практическим применением этой функции в реальных условиях рабочей нагрузки, чтобы понять её влияние на производительность и эффективность управления кластерами.