← Back to News

Kubernetes v1.36: Mutable Pod Resources for Suspended Jobs (beta)

Kubernetes v1.36 is promoting a useful feature to beta: the ability to modify container resource requests and limits while a Job is suspended. If you’re managing workloads at scale, this sounds like a niche feature—but it solves a real operational headache. Previously, once you created a Job with specific CPU and memory requests, those values were locked in. If you needed to adjust resources before the job ran, you had to delete and recreate it. Now you can modify the pod template of a suspended Job, adjust CPU, memory, GPU, and custom resources, then resume it without losing your place in the queue or restarting from scratch.

The technical implementation leverages Kubernetes’ existing Job suspension mechanism. When you suspend a Job, it pauses execution without deleting the Job object itself. With this beta feature, the Job’s pod template becomes mutable during suspension—you can edit resource requests and limits directly. When you resume the Job, the newly created pods will use the updated resource specifications. This works through standard kubectl commands (kubectl patch or kubectl edit) or programmatically via the Kubernetes API, making it straightforward to integrate into automation workflows. Queue controllers and cluster administrators can now adjust resources based on cluster capacity, cost models, or changing workload requirements without recreating Job objects.

The practical impact becomes clear when you consider real-world scenarios. In a shared cluster using a job queue system (like Keda or Karpenter integration), an administrator might notice a job is queued with inefficient resource requests. Instead of canceling and resubmitting it, they can suspend it, adjust the requests downward to fit available capacity, and resume—the job stays in its original queue position. For ML workloads, you might submit a training job, then realize you need fewer GPUs than initially requested. Suspend, modify, resume. This is especially valuable in cost-sensitive environments where right-sizing resources before execution can significantly impact cloud spending.

If you’re building automation tools or managing multi-tenant clusters, this feature opens new possibilities. You could build controllers that analyze pending jobs and automatically adjust resource requests during suspension periods to optimize for cluster utilization or cost. Development teams can also benefit: submit a job speculatively with conservative resources, then scale them up during suspension if you’re confident about the workload’s actual needs. Since this is now in beta, it’s stable enough for production testing—a good time to explore whether your workflow could benefit from more flexible resource management.

Source
↗ Kubernetes Blog