Nguồn: Kubernetes Blog
Tóm tắt
Kubernetes v1.36 nâng cấp tính năng “Mutable Pod Resources for Suspended Jobs” lên trạng thái beta, sau khi được giới thiệu ở alpha trong v1.35. Tính năng này cho phép các bộ điều khiển queue và quản trị viên cluster điều chỉnh yêu cầu tài nguyên CPU, bộ nhớ, GPU và các tài nguyên mở rộng trong pod template của một Job trong khi Job đang ở trạng thái suspended, trước khi Job bắt đầu hoặc tiếp tục chạy.
Trước đây, yêu cầu tài nguyên trong pod template của Job là bất biến (immutable) một khi đã được thiết lập. Nếu một bộ điều khiển queue như Kueue xác định rằng Job cần chạy với tài nguyên khác, giải pháp duy nhất là xóa và tạo lại Job, dẫn đến mất metadata, trạng thái và lịch sử. Với tính năng mới, bộ điều khiển có thể cập nhật tài nguyên trực tiếp mà không cần xóa Job.
Ứng dụng thực tế rất rõ ràng trong các workload machine learning: một Job ML ban đầu yêu cầu 4 GPU có thể được điều chỉnh xuống 2 GPU nếu cluster không có đủ 4 GPU, thay vì phải chờ đợi hoặc từ chối Job. Bộ điều khiển chỉ cần cập nhật resources trong pod template, sau đó set spec.suspend = false để tiếp tục Job.
Về mặt kỹ thuật, Kubernetes API server nới lỏng ràng buộc bất biến trên các trường tài nguyên pod template đặc biệt cho Suspended Jobs, không cần thêm loại API mới. Tính năng được kiểm soát bởi feature gate MutablePodResourcesForSuspendedJobs.