如何深入理解 HAMi vGPU 中的 hami-webhook 工作机制?
摘要:上篇我们分析了 hami-device-plugin-nvidia,知道了 HAMi 的 NVIDIA device plugin 工作原理。 本文为 HAMi 原理分析的第二篇,分析 hami-scheduler 实现原理。 为了实现基于
上篇我们分析了 hami-device-plugin-nvidia,知道了 HAMi 的 NVIDIA device plugin 工作原理。
本文为 HAMi 原理分析的第二篇,分析 hami-scheduler 实现原理。
为了实现基于 vGPU 的调度,HAMi 实现了自己的 Scheduler:hami-scheduler,除了基础调度逻辑之外,还有 spread & binpark 等 高级调度策略。
主要包括以下几个问题:
1)Pod 是如何使用到 hami-scheduler,创建 Pod 时我们未指定 SchedulerName 默认会使用 default-scheduler 进行调度才对
2)hami-scheduler 逻辑,spread & binpark 等 高级调度策略是如何实现的
由于内容比较多,拆分为了 hami-webhook、 hami-scheduler 以及 Spread&Binpack 调度策略三篇文章,本篇我们主要解决第一个问题。
以下分析基于 HAMi v2.4.0
1. hami-scheduler 启动命令
hami-scheduler 具体包括两个组件:
hami-webhook
hami-scheduler
虽然是两个组件,实际上代码是放在一起的,cmd/scheduler/main.go 为启动文件:
这里也是用 corba 库实现的一个命令行工具。
