qemu
QEMU 驱动
概述
qemu
驱动使用 QEMU (系统) 来创建虚拟机。
用法
要使用 qemu 驱动启动 minikube
minikube start --driver=qemu
特殊功能
minikube start 支持一些 qemu 特定的标志
--qemu-firmware-path
:要使用的固件镜像的路径。
网络
QEMU 驱动程序有两个网络选项:socket_vmnet
和 builtin
。socket_vmnet
将为您提供完整的 minikube 网络功能,例如 service
和 tunnel
命令。另一方面,builtin
网络不是专用网络,因此诸如 service
和 tunnel
之类的命令不可用。socket_vmnet 可以通过 brew 或从源代码安装(说明如下)。
要求
需要 macOS 10.15 或更高版本和 socket_vmnet。
通过 brew 安装 socket_vmnet
brew install socket_vmnet
brew tap homebrew/services
HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet
从源代码安装 socket_vmnet (需要 Go)
git clone https://github.com/lima-vm/socket_vmnet.git && cd socket_vmnet
sudo make install
用法
minikube start --driver qemu --network socket_vmnet
用法
minikube start --driver qemu --network builtin
已知问题
/var/db/dhcpd_leases
错误
如果您看到与 /var/db/dhcpd_leases
相关的错误,则您的防火墙很可能正在阻止 bootpd 进程。
运行以下命令以从 macOS 内置防火墙中解除对 bootpd 的阻止
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/bootpd
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblock /usr/libexec/bootpd
在公司机器或使用自定义 DNS 时启动卡住
当使用 builtin
网络(默认)时,guest 仅使用主机 /etc/resolv.conf
中的第一个 nameserver
条目进行 DNS 查找。如果您的第一个 nameserver
条目是公司/内部 DNS,则很可能会导致问题。如果您在 minikube start
上看到警告 ❗ This VM is having trouble accessing https://registry.k8s.io
,则您很可能受到此问题的影响。这可能会阻止您的集群完全启动,并且您将无法拉取远程镜像。更多详细信息可以在以下位置找到:#15021
解决方法
- 如果可能,请重新排序您的
/etc/resolv.conf
,使通用的nameserver
条目(例如8.8.8.8
)优先,然后重新启动您的机器。 - 使用
--network=socket_vmnet
故障排除
- 运行
minikube start --alsologtostderr -v=4
来调试崩溃