架构

HAMi 的整体架构如下所示:

HAMi 由以下组件组成:

  • HAMi MutatingWebhook
  • HAMi scheduler-extender
  • Device-plugin (HAMi-device-plugin)
  • 容器内资源控制(HAMi-Core)

HAMi MutatingWebhook 会检查任务是否可以由 HAMi 处理。它会扫描每个已提交 pod 的资源字段;如果 pod 请求的所有资源都属于 cpumemory 或 HAMi 资源,则会将该 pod 的 schedulerName 设置为 HAMi-scheduler

HAMi scheduler 负责将任务分配到合适的节点和设备。它还维护异构计算设备的全局视图,用于监控。

device-plugin 层会从任务的注解中读取调度结果,并将相应的设备映射到容器中。

容器内资源控制会监控容器内的资源使用情况,并提供硬隔离。