驱动程序

如何创建新的虚拟机驱动程序

本文档适用于熟悉 minikube 并希望添加对新虚拟机驱动程序支持的贡献者。

minikube 依靠 docker-machine 驱动程序来管理机器。本文档讨论了如何修改 minikube,以便此驱动程序可以通过 minikube start --driver=<new_driver> 使用。

创建新驱动程序

请参阅 machine-drivers ,这是一个包含所有新 docker-machine 驱动程序的分支。

内置驱动程序与外部驱动程序

大多数驱动程序是内置的:它们作为代码依赖项包含在 minikube 中,因此无需额外安装。在以下两种主要情况下,您可能希望使用外部驱动程序:

  • 由于平台不兼容(kvm2)或许可问题,该驱动程序具有 minikube 不应依赖的代码依赖项
  • 驱动程序需要以提升的权限运行 (hyperkit)

外部驱动程序通过执行命令 docker-machine-driver-<name> 来实例化,该命令会启动一个 RPC 服务器,minikube 将与其通信。

集成驱动程序

集成过程实际上分为 3 个步骤。

  1. k8s.io/minikube/pkg/minikube/drivers 中创建驱动程序垫片
    • 为支持的操作系统添加 Go 构建标签
    • DriverDef 中定义要注册的驱动程序元数据
  2. pkg/minikube/cluster/default_drivers.go 中添加导入,以便 minikube 构建过程可以包含该驱动程序。

驱动程序垫片

驱动程序垫片的主要职责是向 minikube 注册虚拟机驱动程序,并将 minikube 虚拟机硬件配置转换为驱动程序能够理解的格式。

注册您的驱动程序

注册表文档可在此处获取:https://pkg.go.dev/k8s.io/minikube/pkg/minikube/registry

DriverDef 是定义驱动程序元数据的主要结构体。基本上,您最多需要定义 4 项内容,一旦您很好地理解了您的驱动程序,这会非常简单。

  • 名称:驱动程序的唯一名称,它将用作注册表中的唯一 ID 以及 minikube 命令中的 --driver 选项

  • 内置:如果驱动程序应内置到 minikube 中(首选),则为 true。否则为 false

  • 配置创建器:如何将 minikube 配置转换为驱动程序配置。驱动程序配置将持久化在您的 $USER/.minikube 目录中。最可能的情况是驱动程序配置就是驱动程序本身。

  • 驱动程序创建器:仅当驱动程序是内置的时才需要,用于实例化驱动程序实例。

如有任何问题:请联系您的朋友 @anfernee 或 #minikube Slack 频道。


最后修改日期:2023年6月11日:移除废弃的 vmwarefusion 驱动程序 (0a551357b)