驱动程序
本文档面向熟悉 minikube 并希望添加对新虚拟机驱动程序支持的贡献者。
本文档讨论了如何修改 minikube,以便可以使用 minikube start --driver=<new_driver> 来使用该驱动程序。
内置驱动程序 vs 外部驱动程序
大多数驱动程序都是内置的:它们作为代码依赖项包含在 minikube 中,因此无需进一步安装。您可能希望使用外部驱动程序的两种主要情况是:
- 该驱动程序存在代码依赖项,由于平台不兼容性(kvm2)或许可原因,minikube 不应依赖该依赖项。
- 该驱动程序需要以提升的权限运行(hyperkit)。
外部驱动程序是通过执行命令 docker-machine-driver-<name> 来实例化的,该命令会启动一个 RPC 服务器,minikube 将与之通信。
集成驱动程序
集成过程基本上是 3 个步骤。
- 在
k8s.io/minikube/pkg/minikube/drivers中创建一个驱动程序代理- 为支持的操作系统添加 Go 构建标签
- 定义要在
DriverDef中注册的驱动程序元数据
- 在
pkg/minikube/cluster/default_drivers.go中添加导入,以便该驱动程序可以包含在 minikube 构建过程中。
驱动程序代理
驱动程序代理的主要职责是向 minikube 注册 VM 驱动程序,并将 minikube VM 硬件配置转换为驱动程序可以理解的格式。
注册您的驱动程序
注册表上的文档可在此处找到:https://pkg.go.dev/k8s.io/minikube/pkg/minikube/registry
DriverDef 是定义驱动程序元数据的主要结构。基本上,您最多需要定义 4 项内容,一旦您充分了解您的驱动程序,这将非常简单。
-
Name:驱动程序的唯一名称,它将用作注册表中的唯一 ID,以及 minikube 命令中的
--driver选项。 -
Builtin:如果驱动程序应内置到 minikube 中(首选),则为
true。否则为false。 -
ConfigCreator:如何将 minikube 配置转换为驱动程序配置。驱动程序配置将持久保存在您的
$USER/.minikube目录中。驱动程序配置很可能就是驱动程序本身。 -
DriverCreator:仅当驱动程序是内置的时才需要,用于实例化驱动程序实例。
有任何问题吗:请联系您的朋友 @anfernee 或 #minikube Slack 频道。