DRA P3:DRA 工作流程与源码分析

DRA P3:DRA 工作流程与源码分析

💡 原文中文,约18800字,阅读约需45分钟。
📝

内容提要

DRA工作流程包括六个阶段:设备注册、分类定义、用户需求声明、调度器分配、设备准备与注入、Pod运行与清理。DRA Driver通过NVML扫描GPU并注册到Kubelet,用户创建Pod和ResourceClaim,调度器选择并分配设备。Kubelet负责准备设备并注入到容器,Pod终止后进行清理。DRA简化了设备管理流程,调度器负责分配决策。

🎯

关键要点

  • DRA工作流程分为六个阶段:设备注册、分类定义、用户需求声明、调度器分配、设备准备与注入、Pod运行与清理。

  • DRA Driver通过NVML扫描GPU并注册到Kubelet,发布ResourceSlice,包含所有GPU设备及其属性。

  • 用户创建Pod和ResourceClaimTemplate,Controller生成ResourceClaim,Pod进入调度队列。

  • 调度器实现了多个扩展点,选定节点和具体设备,分配结果在调度阶段确定。

  • Kubelet负责准备设备并注入到容器,使用CDI标准化设备注入流程。

  • Pod终止后,Kubelet清理设备,Controller清除分配,设备回到可分配状态。

延伸问答

DRA工作流程的六个阶段是什么?

DRA工作流程包括设备注册、分类定义、用户需求声明、调度器分配、设备准备与注入、Pod运行与清理六个阶段。

DRA Driver是如何注册GPU设备的?

DRA Driver通过NVML扫描GPU并注册到Kubelet,随后发布ResourceSlice,包含所有GPU设备及其属性。

用户如何声明对GPU的需求?

用户通过创建Pod和ResourceClaimTemplate来声明需求,Controller会根据模板生成ResourceClaim。

调度器在DRA中扮演什么角色?

调度器负责选择节点和具体设备,并在调度阶段确定分配结果,确保资源的有效分配。

Kubelet在设备准备与注入阶段的作用是什么?

Kubelet负责准备设备并将其注入到容器中,使用CDI标准化设备注入流程。

Pod终止后,DRA是如何进行清理的?

Pod终止后,Kubelet会清理设备,Controller会移除分配,设备回到可分配状态。

➡️

继续阅读