当前位置:首页 > 技术 > 正文内容

Minikube:本地Kubernetes开发与测试环境搭建指南

访客 技术 2026年8月21日 1

1. Minikube 概述

Minikube 是一款旨在简化本地 Kubernetes 集群搭建的工具。它能在您的笔记本电脑上运行一个单节点的 Kubernetes 集群,通常部署在一个虚拟机中。这使得开发者和测试人员能够轻松地体验 Kubernetes 的功能,而无需复杂的配置。需要注意的是,Minikube 主要面向开发和测试场景,不适用于生产环境,因为它只提供一个单节点且不具备高可用性。

通过 Minikube 的命令行接口 (CLI),您可以方便地管理这个虚拟机上的 Kubernetes 环境,包括启动、停止、删除集群以及查看其状态。

1.1 Minikube 支持的功能

Minikube 集成了 Kubernetes 的多项核心功能,包括但不限于:

  • DNS 解析
  • NodePort 服务暴露
  • ConfigMaps 和 Secrets 配置管理
  • Kubernetes Dashboard (Web UI)
  • 多种容器运行时:Docker, rkt, CRI-O, containerd
  • CNI (Container Network Interface) 网络插件支持
  • Ingress 流量路由

1.2 架构示意

Minikube 的基本工作原理是通过在本地虚拟机环境中部署一个完整的 Kubernetes 集群。其简化架构示意图如下:

Minikube Architecture

2. Minikube 安装

2.1 安装前置条件

  • 确保您的计算机 BIOS 中已启用硬件虚拟化技术 (Intel VT-x 或 AMD-v)。
  • 安装 kubectl 命令行工具,用于与 Kubernetes 集群交互。

2.2 安装 Minikube

您可以通过以下命令下载并安装 Minikube:


# 下载最新版本的 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 将下载的文件安装到 /usr/local/bin 目录
sudo install minikube-linux-amd64 /usr/local/bin/minikube
    

提示: 如果您在中国大陆地区,可能会遇到访问国外源较慢的问题。可以使用阿里云提供的国内镜像源进行下载和安装:


# 从阿里云镜像下载指定版本的 Minikube
curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.25.2/minikube-linux-amd64

# 赋予执行权限并移动到 PATH
chmod +x minikube
sudo mv minikube /usr/local/bin/
    

3. 使用 Minikube 启动 Kubernetes 集群

3.1 准备虚拟机环境

Minikube 默认使用 VirtualBox 作为虚拟机驱动。如果您的系统尚未安装 VirtualBox,可以按照以下步骤进行安装(以 CentOS/RHEL 7 为例):


# 更新系统包列表
sudo yum -y update

# 安装内核开发包,用于 VirtualBox 模块编译
sudo yum -y install kernel-devel

# 添加 VirtualBox 官方 YUM 仓库
sudo vi /etc/yum.repos.d/virtualbox.repo
# 在文件中添加以下内容:
# [virtualbox]
# name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
# baseurl=http://download.virtualbox.org/virtualbox/rpm/el/7/$basearch
# enabled=1
# gpgcheck=1
# repo_gpgcheck=1
# gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc

# 安装 VirtualBox
sudo yum -y install VirtualBox-5.2

# 加载 VirtualBox 内核模块
sudo /sbin/vboxconfig
    
VirtualBox Installation

注意: Minikube 支持多种虚拟机驱动,包括 KVM、Hyper-V 等。您可以根据自己的操作系统和偏好选择合适的驱动。如果使用 --vm-driver=none 选项,Minikube 将直接在宿主机上使用 Docker 环境运行 Kubernetes 组件,此时需要提前在宿主机上安装 Docker。

3.2 快速启动集群

执行以下命令即可启动一个 Minikube Kubernetes 集群:


minikube start
    
Minikube Start Output

提示: 如果需要指定不同的虚拟机驱动,可以在 minikube start 命令后添加 --vm-driver 参数,例如:minikube start --vm-driver hyperv。以下是使用 KVM2 驱动的示例:


# 安装 KVM2 驱动所需的前置组件 (Debian/Ubuntu)
sudo apt -y install libvirt-clients libvirt-daemon-system qemu-kvm

# 下载并安装 KVM2 驱动
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2
sudo install docker-machine-driver-kvm2 /usr/local/bin/

# 使用 KVM2 驱动启动 Minikube
minikube start --vm-driver kvm2
    

更多关于驱动安装的详细信息,请参考 Minikube 官方驱动文档

集群启动后,您可以使用 kubectl 进行验证:


# 查看集群 Master 信息
kubectl cluster-info

# 部署一个简单的 EchoServer 应用
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080

# 将应用暴露为 NodePort 服务
kubectl expose deployment hello-minikube --type=NodePort

# 查看运行的 Pod
kubectl get pod

# 查看 kube-system 命名空间下的部署组件
kubectl get all --namespace=kube-system
    
Kubectl Cluster Info

3.3 验证集群运行

您可以 SSH 进入 Minikube 虚拟机,检查容器运行情况,或打开 Kubernetes Dashboard 进行可视化管理:


# SSH 进入 Minikube 虚拟机
minikube ssh

# 在虚拟机中查看正在运行的容器
$ docker ps

# 打开 Kubernetes Web 管理界面
minikube dashboard
    
Minikube Dashboard

4. Minikube 常用操作

4.1 核心命令

以下是一些 Minikube 的常用操作命令:


# 查看 Minikube 版本
minikube version

# 查看 Minikube 集群状态
minikube status

# 启动 Minikube 集群 (若已存在则会恢复)
minikube start

# 启动指定 Kubernetes 版本的集群
minikube start --kubernetes-version v1.7.3

# 停止 Minikube 集群
minikube stop
    

说明: minikube stop 命令会关闭 Minikube 虚拟机,但会保留集群的所有状态和数据。下次启动时会恢复到停止前的状态。


# 获取 Minikube 虚拟机的 IP 地址
minikube ip

# SSH 进入 Minikube 虚拟机
minikube ssh

# 查看 Minikube 运行日志
minikube logs

# 列出可用的 Minikube 插件 (addons)
minikube addons list
    
Minikube Addons List

# 启动指定版本的 Kubernetes 集群
minikube start --kubernetes-version v1.7.3

# 删除 Minikube 集群及其虚拟机 (不可恢复)
minikube delete

# 启动 Kubernetes Dashboard
minikube dashboard
    

4.2 Docker 环境集成

为了方便在宿主机上直接使用 Docker 命令与 Minikube 内部的 Docker 守护进程交互,可以执行以下命令进行环境变量配置:


# 配置 Docker 环境变量,使宿主机的 Docker 命令指向 Minikube 内部
eval $(minikube docker-env)

# 现在可以执行 Docker 命令,例如查看容器
docker ps
    

参考文档:

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。