Kubernetes v1.33:DRA 的新功能
Kubernetes 動態資源分配(DRA)最初在 v1.26 版本中作為 Alpha 功能引入,然後在 Kubernetes v1.31 中進行了重大重新設計。主要的 DRA 功能在 v1.32 中進入 Beta 階段,該專案希望它能在 Kubernetes v1.34 中正式釋出(GA)。
DRA 的基本功能集為請求裝置提供了比裝置外掛(Device Plugin)更強大、更靈活的 API。雖然 DRA 在 v1.33 中仍然是 Beta 功能,但 DRA 團隊一直在努力實現一些新功能和使用者體驗(UX)的改進。一個功能已升級到 Beta 版,同時增加了多個新的 Alpha 功能。該團隊在為 DRA 準備 GA 方面也取得了進展。
升級到 Beta 的功能
驅動程式所有的 ResourceClaim Status 已升級到 Beta 版。這允許驅動程式在 ResourceClaim 中為每個分配的裝置報告特定於驅動程式的裝置狀態資料,這對於支援網路裝置特別有用。
新的 Alpha 特性
可分割槽裝置(Partitionable Devices) 允許驅動程式公佈多個重疊的邏輯裝置(“分割槽”),驅動程式可以根據實際分配的裝置動態地重新配置物理裝置。這使得按需對裝置進行分割槽以滿足工作負載的需求成為可能,從而提高利用率。
裝置汙點和容忍(Device Taints and Tolerations) 允許裝置被設定汙點,並讓工作負載容忍這些汙點。這使得驅動程式或叢集管理員可以將裝置標記為不可用。根據汙點的效果,這可以防止裝置被分配,或導致使用該裝置的 Pod 被驅逐。
優先順序列表(Prioritized List) 允許使用者為其工作負載指定一個可接受的裝置列表,而不僅僅是單一型別的裝置。因此,雖然工作負載可能在單個高效能 GPU 上執行效果最佳,但它也可能能夠在 2 箇中級 GPU 上執行。排程器將按順序嘗試滿足列表中的備選項,因此工作負載將被分配到叢集中可用的最佳裝置集。
管理員訪問(Admin Access) 已更新,現在只有有權訪問帶有 resource.k8s.io/admin-access: "true"
標籤的名稱空間的使用者,才能在該名稱空間內建立帶有 adminAccess
欄位的 ResourceClaim 或 ResourceClaimTemplates 物件。這授予管理員對使用中裝置的訪問許可權,並可能在容器中提供裝置時啟用額外的許可權。這確保了非管理員使用者不能濫用該功能。
為正式釋出做準備
新增了一個 v1beta2 API,以簡化使用者體驗併為未來新增更多功能做準備。DRA 的 RBAC 規則得到了改進,並增加了對 DRA 驅動程式無縫升級的支援。
下一步是什麼?
v1.34 的計劃比 v1.33 更具雄心。最重要的是,我們(Kubernetes 裝置管理工作組)希望將 DRA 升級為正式釋出(GA),這將使其在所有 v1.34 Kubernetes 叢集上預設可用。這也意味著,許多(甚至可能全部)在 v1.34 中仍為 Beta 的 DRA 功能將變為預設啟用,從而使其更易於使用。
在 v1.33 中新增的 Alpha 功能將在 v1.34 中升級為 Beta。
參與進來
一個很好的起點是加入 WG Device Management 的 Slack 頻道和會議,會議時間對美國/歐洲和歐洲/亞太地區友好。
並非所有的增強想法都已作為 Issue 進行跟蹤,所以如果你想幫助或有自己的想法,請來和我們交流!我們有各個層級的工作要做,從困難的核心變更到 kubectl 中的可用性增強,這些都可能由新人來承擔。
致謝
非常感謝所有做出貢獻的人