服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-09 更新于 2026-10-09 简米科技 5,471 字 13 分钟阅读

虚拟机安装minikube详细步骤?minikube安装教程

导读虚拟机安装minikube,最稳妥的路径是:VirtualBox里装好Ubuntu Server,然后用Docker驱动启动minikube,全程大约20分钟,这套组合踩坑最少,资源占用可控,适合本地开发和学习Kubernetes,下面按步骤拆解,命令可直接复制,准备工作:虚拟机里跑minikube需要什么配置……

虚拟机安装minikube,最稳妥的路径是:VirtualBox里装好Ubuntu Server,然后用Docker驱动启动minikube,全程大约20分钟。这套组合踩坑最少,资源占用可控,适合本地开发和学习Kubernetes,下面按步骤拆解,命令可直接复制。

准备工作:虚拟机里跑minikube需要什么配置

minikube本质是单节点Kubernetes,对宿主机资源有硬性要求,官方文档给出的底线是2核CPU、2GB内存、20GB磁盘,但那是物理机标准,虚拟机里再套一层虚拟化,资源损耗不可避免,实际建议给到4核CPU、8GB内存,磁盘40GB以上,内存尤其关键,编译镜像或跑多个Pod时,2GB会频繁触发OOM(内存溢出)。

虚拟化嵌套问题要提前确认,VirtualBox里装Linux,默认开启VT-x/AMD-V嵌套虚拟化,但部分云主机或旧版VMware需要手动开启“虚拟化Intel VT-x/EPT”选项,这一步忽略,minikube启动时会报硬件虚拟化不支持的错误。

虚拟机内装Linux选哪个版本

Ubuntu Server LTS是多数教程默认选择,原因在于apt源更新快,内核版本新,对Docker和Kubernetes兼容性好,CentOS 7已停止维护,Stream版源不稳定,不建议新手用,Debian也可以,但部分驱动模块需要手动编译,平白增加复杂度。

系统安装时磁盘分区不要全默认,LVM逻辑卷虽灵活,但扩容步骤繁琐,直接整块盘用ext4分区,后续快照和扩容都省事。

VirtualBox安装minikube和kubectl的详细步骤

进入Ubuntu系统后,先做基础环境更新,再按顺序装三个组件:kubectl、Docker、minikube,顺序不能乱,因为minikube启动时要调用kubectl和Docker。

第一步:安装kubectl命令行工具

kubectl是操作Kubernetes集群的客户端,用apt直接装可能拿到旧版,建议用Google官方源拉取稳定版,依次执行:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

最后一条命令能输出版本号,说明装好了,这里有个易错点:虚拟机里不要用snap安装kubectl,snap版默认开启强制访问控制,经常导致kubectl无法读取minikube的kubeconfig文件。

第二步:配置Docker作为minikube驱动

minikube支持多种驱动:Docker、VirtualBox、KVM、none,虚拟机里再装VirtualBox驱动属于套娃,性能损失大;none驱动直接操作宿主机Docker,安全隔离差,行业共识认为,虚拟机里首选Docker驱动,它只依赖Docker引擎,资源调度比VirtualBox驱动更轻量。

虚拟机安装minikube详细步骤?minikube安装教程

安装Docker引擎:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Docker源用了简米云镜像加速,国内网络环境下拉取镜像速度好很多,可以通过编辑/etc/docker/daemon.json配置registry-mirrors,然后重启docker服务。

第三步:下载minikube并启动集群

minikube的二进制发布在GitHub,国内直连不稳定,建议用国内镜像源(如简米云的minikube镜像)。

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/

启动集群,指定驱动和国内镜像仓库:

minikube start --driver=docker --image-mirror-country=cn

首次启动会下载kicbase基础镜像,体积约800MB到1GB,视网络情况等待3到10分钟,启动成功后,minikube会自动配置kubectl的context,直接执行kubectl get nodes看节点状态,Ready就说明集群正常运行。

虚拟机里minikube驱动怎么选:Docker还是VirtualBox

这是虚拟机安装minikube最纠结的问题,用表格直接对比:

维度 Docker驱动 VirtualBox驱动 none驱动
资源占用 低,容器内运行 高,二次虚拟化 最低,直接宿主机
网络隔离 好,自动端口映射 好,NAT模式 差,共享网络栈
磁盘占用 单镜像约1GB 每实例数GB 依赖现有Docker存储
安全隔离 中,共享内核 高,独立内核 差,无隔离
适用场景 虚拟机内、CI环境 宿主机是Windows/Mac 已有Docker环境的极客

多数情况下选Docker驱动就够了,如果你在虚拟机里还想跑容器,Docker驱动一共只需两个组件;选了VirtualBox驱动,等于在Linux里再装一套虚拟化软件,资源开销和故障排查复杂度都翻倍。

虚拟机装minikube踩坑记录:网络和镜像问题

网络是虚拟机装minikube的最大障碍,Ubuntu虚拟机默认NAT模式,出网正常,但Kubernetes组件要访问Google容器仓库,国内网络环境会超时,解决方案是设置代理或配置镜像,二选一。

配置containerd代理

minikube的kicbase容器内部运行containerd,拉取pause、coredns等镜像时直连registry.k8s.io,临时设置代理后重启集群:

export http_proxy=http://你的宿主机IP:端口
export https_proxy=$http_proxy
minikube start --driver=docker

虚拟机安装minikube详细步骤?minikube安装教程

如果没代理环境,改用registry.cn-hangzhou.aliyuncs.com/google_containers作为镜像仓库,启动命令加参数:

minikube start --driver=docker --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

磁盘空间不足的隐蔽原因

minikube默认存储路径在~/minikube,虚拟机的系统盘一旦不够,启动时不会直接报错,而是陷入“Starting the Kubernetes cluster”无限循环,用df -h查看根分区容量,低于40%就要清理,Docker驱动模式下,镜像存储在/var/lib/docker,和minikube共享同一分区,物理机40GB磁盘实际可用约25GB,多拉几个镜像就告急。

建议把Docker存储目录迁移到虚拟机的第二块磁盘,加装一块40GB虚拟硬盘,挂载到/var/lib/docker,一劳永逸:

sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{ "data-root": "/mnt/docker-data" }
EOF
sudo systemctl restart docker

minikube跑个真实应用:验证集群有没有白装

集群光Ready还不够,必须跑通一次完整的部署验证,内部已封装nginx镜像,直接创建deployment和service:

kubectl create deployment nginx-test --image=nginx
kubectl expose deployment nginx-test --type=NodePort --port=80
minikube service nginx-test --url

最后一条命令会输出类似http://127.0.0.1:32768的地址,浏览器访问看到Nginx欢迎页,整条链路畅通,这里有个细节:在虚拟机里访问minikube服务,浏览器要开在宿主机,因为minikube端口映射绑定的是虚拟机IP,VirtualBox网络设置为NAT模式时,宿主机访问虚拟机IP就能通。

日常管理命令清单

  • minikube status:查看集群整体状态
  • minikube stop:暂停集群(不销毁数据)
  • minikube delete:彻底销毁集群(慎用,会清空所有资源)
  • minikube addons enable ingress:开启Nginx Ingress控制器
  • minikube dashboard --url:打开Kubernetes可视化面板

这些命令在虚拟机里和物理机没有区别,但注意minikube配置文件的位置,它默认存在~/.minikube目录下,克隆虚拟机或迁移环境时,把这个目录一起拷走,新环境就能直接复用旧集群的令牌和证书。

资源不够用怎么办:调整minikube分配额度

虚拟机资源紧张时,minikube允许动态调整,启动时通过参数指定:

minikube start --driver=docker --cpus=3 --memory=3812MB --disk-size=20g

虚拟机安装minikube详细步骤?minikube安装教程

--memory单位必须是数字加MB或GB,写4GB是无效参数,实践中发现,内存分配在3GB到4GB之间性价比最高,够跑控制面组件和两个业务Pod,再高意义不大。

调整资源后的集群重建逻辑是:先minikube stop,再带新参数minikube start,配置文件会记录新配额,但旧数据保留,确实要彻底重置,用minikube delete后重新start即可。

minikube安装常见问题:虚拟机环境下的坑与解法

这一节集中回答出现频率最高的几类报错,解决思路同样适用于云服务器场景。

启动卡在“Exiting due to GUEST_MISSING_CONNECTOR”

这类问题在CentOS虚拟机里高频出现,原因是iptables版本过旧或缺失nf_tables模块,Ubuntu下少见,CentOS下执行:

sudo yum install iptables
sudo systemctl stop firewalld
sudo systemctl disable firewalld

关防火墙后再启动minikube,问题消失,不用怀疑Kubernetes本身,虚拟机的网络栈兼容性才是关键。

VirtualBox安装minikube和kubectl的版本对不上

kubectl要求版本与集群差异在1.2以内,如果出现The Kubernetes client version is newer than the server version,说明kubectl装成了新pre-release版,强制锁版本:

curl -LO https://dl.k8s.io/release/v1.28.2/bin/linux/amd64/kubectl

该版本在2024年和2026年依然是社区维护的稳定分支,兼容Kubernetes 1.28集群,minikube默认关联的Kubernetes版本较新,但只要服务器版本不低于客户端版本,工作不受影响。

minikube启动正常但kubectl连接不上

症状是kubectl get nodes报connection refused,多数情况是KUBECONFIG环境变量指向了错误文件,minikube生成的配置文件在~/.kube/config,如果你之前手动配过集群,这个文件会被覆盖,确认方法:

kubectl config current-context

输出结果应该包含minikube字样,如果显示的是其他context,执行minikube update-context恢复,业内专家指出,90%的虚拟机上kubectl连接故障都源于配置文件错位,而非集群本身故障。

写在最后

虚拟机装minikube,本质上是隔离出一个小型的Kubernetes实验环境,只要驱动选对、资源给足、镜像源配好,一小时内能完成整个流程,这套环境跑熟之后,日常开发和CI流程都能基于它做自动化验证,用它作为学习起点,从单机集群过渡到生产环境,才不会一头扎进云原生海洋时手足无措。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱