如何深入理解 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 库实现的一个命令行工具。
阅读全文