平台與維運 2026 年 5 月 18 日

2026-05-18 — K8s v1.36 PSI Metrics GA、工作負載感知排程 Gang Scheduling 與 DRA

primary=https://kubernetes.io/blog/2026/05/12/kubernetes-v1-36-psi-metrics-ga/ primary=https://kubernetes.io/blog/2026/05/13/kubernetes-v1-36-advancing-workload-aware-scheduling/

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


End of article
0
Would love your thoughts, please comment.x
()
x