驱动程序

如何创建新的 VM 驱动程序

本文档为熟悉 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 个步骤。

  1. k8s.io/minikube/pkg/minikube/drivers 中创建驱动程序垫片。
    • 为支持的操作系统添加 Go 构建标签。
    • 定义要在 DriverDef 中注册的驱动程序元数据。
  2. 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 频道。


上次修改时间:2023 年 6 月 11 日:删除过时的 vmwarefusion 驱动程序 (0a551357b)