驱动程序
本文档为熟悉 minikube 且希望添加对新 VM 驱动程序支持的贡献者编写。
minikube 依赖于 docker-machine 驱动程序来管理机器。本文档讨论如何修改 minikube,以便可以通过 minikube start --driver=<new_driver>
使用此驱动程序。
创建新的驱动程序
请参阅 machine-drivers,这是所有新的 docker-machine 驱动程序所在的 fork。
内置与外部驱动程序
大多数驱动程序都是内置的:它们作为代码依赖项包含在 minikube 中,因此无需进一步安装。您可能需要使用外部驱动程序主要有两种情况:
- 该驱动程序具有 minikube 不应依赖的代码依赖项,因为平台不兼容(kvm2)或许可限制。
- 该驱动程序需要以提升的权限运行(hyperkit)。
外部驱动程序通过执行命令 docker-machine-driver-<name>
来实例化,该命令启动 minikube 将与之通信的 RPC 服务器。
集成驱动程序
集成过程实际上分为 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 个内容,一旦您充分了解您的驱动程序,这非常简单。
-
名称:驱动程序的唯一名称,它将用作注册表中的唯一 ID 和 minikube 命令中的
--driver
选项。 -
内置:如果驱动程序应内置到 minikube 中(首选),则为
true
。否则为false
。 -
ConfigCreator:如何将 minikube 配置转换为驱动程序配置。驱动程序配置将持久保存在您的
$USER/.minikube
目录中。驱动程序配置很可能就是驱动程序本身。 -
DriverCreator:仅当驱动程序是内置的时才需要,以实例化驱动程序实例。
如有任何疑问:请 ping 您的朋友 @anfernee 或 #minikube Slack 频道。