Minikube:本地Kubernetes开发与测试环境搭建指南
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 集群。其简化架构示意图如下:
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
注意: Minikube 支持多种虚拟机驱动,包括 KVM、Hyper-V 等。您可以根据自己的操作系统和偏好选择合适的驱动。如果使用 --vm-driver=none 选项,Minikube 将直接在宿主机上使用 Docker 环境运行 Kubernetes 组件,此时需要提前在宿主机上安装 Docker。
3.2 快速启动集群
执行以下命令即可启动一个 Minikube Kubernetes 集群:
minikube start
提示: 如果需要指定不同的虚拟机驱动,可以在 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
3.3 验证集群运行
您可以 SSH 进入 Minikube 虚拟机,检查容器运行情况,或打开 Kubernetes Dashboard 进行可视化管理:
# SSH 进入 Minikube 虚拟机
minikube ssh
# 在虚拟机中查看正在运行的容器
$ docker ps
# 打开 Kubernetes Web 管理界面
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
# 启动指定版本的 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
参考文档: