Kubernetes v1.36:PSI 資源壓力指標正式 GA,提供三層級飽和度訊號
Kubernetes Blog · 2026-05-12
Kubernetes v1.36 將 PSI(Pressure Stall Information)指標功能從 Beta 晉升至 GA,正式成為穩定 API。PSI 是 Linux 核心自 2018 年引入的資源壓力量化機制,與傳統使用率指標相比,它直接測量任務因資源競爭而停頓的時間,能在資源飽和導致服務降級之前提早發出訊號。
背景
CPU 使用率 80% 並不代表服務有問題,但如果所有 CPU 時間都用在上下文切換而非有效工作,服務延遲就會明顯上升。PSI 測量的是「有多少任務正在等待資源」及「等待持續多久」,區分 some(部分任務停頓)與 full(所有任務停頓)兩個壓力等級,覆蓋 CPU、Memory、I/O 三類資源。
核心改動
PSI 指標在三個層級暴露:
- Node 層級:整個節點的資源壓力
- Pod 層級:單一 Pod 的資源競爭狀況
- Container 層級:容器粒度的壓力量化
每個維度提供累積總量(absolute stall time)與滑動平均(10s、60s、300s 視窗),後者對區分瞬時尖峰與持續飽和特別有用。
效能影響
生產環境壓力測試(80+ pods 高密度場景)確認 kubelet 額外 CPU 消耗約 2.5%(0.1 core on 4-core 機器),核心層的 CPU delta 在 0.925%–3.125% 之間,尖峰可達 5.6% 但隨即回落。此開銷被評估為可融入 kubelet 標準維護週期,不構成額外預算。
影響範圍
PSI GA 後,HPA 等自動擴縮機制可以將 PSI 指標作為比 CPU 使用率更精準的觸發條件。對 AI/ML 工作負載特別有意義:GPU memory pressure 或 CPU stall 通常是訓練任務崩潰的前兆,PSI 可提供毫秒級的早期預警,讓排程器在情況惡化前介入遷移或降級。
原始來源:Kubernetes Blog
Kubernetes v1.36 工作負載感知排程:Gang Scheduling、DRA 整合與拓撲感知
Kubernetes Blog · 2026-05-13
Kubernetes v1.36 持續推進 AI/ML 批次工作負載的排程能力,以 scheduling.k8s.io/v1alpha2 引入了 Workload/PodGroup API 的職責分離,並在此基礎上實現 Gang Scheduling、Dynamic Resource Allocation(DRA)整合與第一代拓撲感知排程。
核心改動:Workload 與 PodGroup 分離
v1.35 將 Pod group 狀態嵌入單一 Workload resource;v1.36 拆成兩個獨立物件:Workload 只描述靜態模板,PodGroup 持有運行期排程狀態。排程器直接讀取 PodGroup 而無需解析 Workload,減少邏輯耦合,同時讓每個 replica 的狀態可獨立分片,改善超大規模叢集的效能。
apiVersion: scheduling.k8s.io/v1alpha2
kind: Workload
spec:
podGroupTemplates:
- name: workers
schedulingPolicy:
gang:
minCount: 4 # 需同時排程 4 個 Pod,否則整批等待規格細節
v1.36 新增三項排程功能:
- 拓撲感知排程(第一版):考量 NUMA、rack、availability zone 配置 Pod,優化 GPU-to-GPU 頻寬
- 工作負載感知搶佔:以整個 Workload 為單位評估搶佔,避免搶佔後 PodGroup 無法湊齊 minCount 的空轉
- ResourceClaim 支援:PodGroup 可請求 DRA 動態資源(GPU、客製化加速器),在工作負載而非單一 Pod 層級協調資源申請
影響範圍
Gang Scheduling 對分散式訓練任務關鍵:所有 worker Pod 必須同時啟動,否則 rank-0 會無限等待 rendezvous。v1.36 的 minCount 語義確保 PodGroup 在達到法定數量前不進入排程,根本消除了部分 Pod 起來佔資源但任務無法啟動的死鎖。Job controller 整合在此版本完成第一階段,正式支援常見的批次工作模式。
原始來源:Kubernetes Blog