安装需求

Windows

下载

下载地址

New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

启动

minikube启动需要从具有管理员权限启动,启动后会根据当前系统状况选择驱动,当然也可以自己设置驱动,Windows推荐hyper-V和docker驱动方式

minikube start

hyper-V

Hyper-V是内置于现代版本的 Microsoft Windows 中的本机管理程序。要求64 位版本的 Windows 10 企业版、专业版或教育版。
启动hyper-V:以管理员身份打开 PowerShell 控制台,然后运行以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

设置默认驱动为hyperv

minikube config set driver hyperv

指定hyperv启动

minikube start --driver=hyperv 

minikube start还支持设置特殊的选项

  • **–hyperv-virtual-switch:**设置minikube VM应该使用的虚拟交换机名称。默认为第一个。
  • **–hyperv-use-external-switch:**如果未明确指定虚拟交换机,则使用外部虚拟交换机而不是默认交换机,如果未找到则创建一个新的交换机。
  • **–hyperv-external-adapter:**如果未找到现有的外部交换机则在其上新建一个外部交换机。

docker

设置默认驱动为docker

minikube config set driver docker

使用docker驱动启用minikube

minikube start --driver=docker

在WSL2上可能需要执行

sudo mkdir /sys/fs/cgroup/systemd && sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd

Virtual Box

virtualBox要求版本5.2及其以上版本
设置VirtualBox为默认驱动

minikube config set driver virtualbox

启动

minikube start --driver=virtualbox
  • –host-only-cidr:用于 minikube VM 的 CIDR(默认为“192.168.59.1/24”)
  • –no-vtx-check:禁用检查硬件虚拟化的可用性

VMware

minikube start --driver vmware

Linux

下载安装

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

驱动

Linux驱动支持:

  • Docker,推荐
  • KVM,推荐
  • VirtualBox
  • None
  • Podman:实验

docker和VirtualBox的驱动见Windows安装

KVM2

  1. 配置KVM2,参考对应的版本
  1. 验证libvirt
virt-host-validate
  1. 检查虚拟化支持
egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no
  1. 设置默认驱动为KVM2或者以KVM2启动
minikube config set driver kvm2 # 设置默认驱动为KVM2
minikube start --driver=kvm2 # 以kvm2启动

其他选项设置:

  • –gpu: 在 minikube 中启用实验性 NVIDIA GPU 支持
  • –hidden:对 minikube 中的来宾隐藏管理程序签名
  • –kvm-network: KVM 默认网络名称
  • –network: 专用 KVM 私网名称
  • –kvm-qemu-uri: KVM qemu uri,默认为 qemu:///system

已知问题:

  • minikube如果用户不在正确的libvirt组中,将重复询问 root 密码#3467
  • Machine didn’t return an IP after 120 seconds当防火墙阻止 VM 网络访问时#3566
  • unable to set user and group to '65534:992当dynamic ownership = 1在qemu.conf #4467
  • KVM VM 不能与 VirtualBox #4913同时使用
  • 在某些发行版上,libvirt 桥接网络可能会失败,直到主机重新启动

故障排除:

  • 运行id以确认用户属于 libvirt[d] 组(输出应包含类似于:‘groups=…,108(libvirt),…’ 的条目)。
  • 运行virsh domcapabilities --virttype="kvm"以确认主机支持 KVM 虚拟化。
  • 运行virt-host-validate并检查建议。
  • 运行ls -la which virsh 、virsh uri和以收集用于调试的附加信息sudo virsh net-list --all。ip a s
  • 运行minikube start --alsologtostderr -v=9以调试崩溃。
  • 运行docker-machine-driver-kvm2 version以验证 kvm2 驱动程序是否正确执行。
  • 阅读如何调试虚拟化问题

一般minikube 会尝试为您检测和解决 KVM/libvirt 网络的任何问题。但是,在某些情况下需要手动干预,主要是因为需要 root 权限。

  1. 列出所有接口
sudo virsh net-list --all
 Name                     State    Autostart   Persistent
-----------------------------------------------------------
 default                  active   yes         yes
 mk-kvm0                  active   yes         yes
 mk-minikube              active   yes         yes
 my-custom-kvm-priv-net   active   yes         yes
  • _default:_是默认的 libvirt 网络,
  • _mk-kvm0:是为 minikube** kvm0**_配置文件创建的默认 libvirt 网络(例如,使用minikube start -p kvm0 --driver=kvm2),
  • _mk-minikube:_是为默认 minikube 配置文件创建的网络(例如,使用minikube start --driver=kvm2)和
  • _my-custom-kvm-priv-net:_是为 minikube 配置文件提供的自定义专用网络名称(例如,使用minikube start -p kvm1 --driver=kvm2 --network=“my-custom-kvm-priv-net”)
  1. 将网络设置自动启动
sudo virsh net-autostart <network>
  1. 激活网络
sudo virsh net-start <network>
  1. 重启libvrt守护进程
sudo systemctl restart libvirtd
或
sudo systemctl restart libvirt
默认的libvirt 网络丢失或无法启动/激活,可以参考
  1. 备份libvrt网络配置
sudo virsh net-dumpxml default > default.xml
  1. 停止默认的libvrt网络
sudo virsh net-destroy default
  1. 删除默认的libvrt网络
sudo virsh net-undefine default
  1. 创建默认libvrt网络
sudo virsh net-define /usr/share/libvirt/networks/default.xml
  1. 启动默认的libvrt网络
sudo virsh net-start default
  1. 自动启动默认的libvrt网络
sudo virsh net-autostart default

None

具有以下内容的 Linux VM:

  • systemd 或 OpenRC
  • 容器运行时,例如 Docker 或 CRIO

此 VM 还必须满足kubeadm 要求,例如:

  • 2个CPU
  • 2GB 内存
  • iptables(在传统模式下)
  • 连接轨道
  • crictl
  • SELinux 许可
  • cgroups v1(Kubernetes 尚不支持 v2)

None要求用户以root身份启动:

sudo -E minikube start --driver=none
sudo minikube config set driver none

删除

当出现驱动占用而删除不掉时可以使用下列命令删除额外的配置来保证,其参数含义如下

  • –all:设置删除所有配置
  • –purge:删除.minikube文件夹
minikube delete --all --purge
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐