Kubernetes(K8s)-02-Minikube安装

🧪 第二章:Minikube------本地玩转 K8s 的神器

还在为搭建 K8s 集群掉头发?Minikube 来拯救你的发际线了!💇‍♂️


🤔 Minikube 是什么?

Minikube 是一个可以在你本地计算机上快速搭建单节点 K8s 集群 的工具。简单说就是:让你在家就能玩转 K8s,不用买一堆服务器 🏠💻

它特别适合开发人员在本地进行 K8s 相关的开发、测试和学习。通过 Minikube,你可以模拟一个完整的 K8s 集群环境------节点、Pod、Service、存储......该有的都有,一样不少 🎯

为啥要有 Minikube?

因为徒手搭 K8s 真的太!痛!苦!了! 😭

凡是手动搭建过 K8s 的同学都知道,那叫一个 "证书认证绕晕头,配置环节磨死人" 。出错率极高,稍有不慎就前功尽弃,分分钟让人怀疑人生 🤯

而 Minikube 就是为解决这个痛点而生的------一键搭建,开箱即用,妈妈再也不用担心我搭不好 K8s 了!现有的很多在线 K8s 实验环境,底层也是基于 Minikube 跑的。

Minikube 的亮点 ✨

  • 基于 Go 语言开发------性能可靠,Go 出品必属精品(手动狗头)
  • 单机快速搭建------消耗资源少,笔记本就能跑
  • 快速启动------几分钟内拥有一个可用的 K8s 集群 ⏱️
  • 支持三大平台------Windows、macOS、Linux 通吃

🏗️ Minikube 架构特点

Minikube 的架构有一个特别之处:Master 节点和 Worker 节点合二为一 ,整个集群通过宿主机的 kubectl 进行管理。

翻译成人话就是:"大脑"和"手脚"长在一起了,省地方! 🧠💪合体!

这样设计的好处是大大节省资源,毕竟咱们本地电脑也不是什么超级计算机对吧?

支持的功能清单 ✅

Minikube 虽然不是"完整版"的 K8s,但常用的功能基本都支持:

功能 支持情况
DNS
NodePorts
ConfigMaps & Secrets
Dashboard(仪表板)
容器运行时(Docker、rkt)
CNI(容器网络接口)
Ingress
......还有更多 🚀

💻 Windows 安装 Minikube(图文实战)

下面我们以 Windows 为例,一步步带你安装运行 Minikube!🏃‍♂️

前置步骤:安装 Docker

Minikube 需要一个容器运行时来跑 K8s 组件,Docker 是首选

  1. 访问 Docker 官方下载地址:

    👉 https://docs.docker.com/desktop/install/windows-install/

  2. 下载 Docker for Windows Installer 安装文件,双击完成安装。

  3. 安装完成后,启动 Docker Desktop,确保它正在运行(任务栏右下角能看到小鲸鱼🐳图标就对了)。

💡 小贴士:Docker 启动后可能需要等一小会儿,让它完全初始化。心急吃不了热豆腐哈 🫣


安装 Minikube

  1. 访问 Minikube 官方下载页面:

    👉 https://minikube.sigs.k8s.io/docs/start/

  2. 点击下载 minikube-installer.exe 安装程序,然后运行安装。

    一路 Next 就完事了,没什么坑,安装程序还是很友好的 😊

  3. 配置环境变量(一般安装程序会自动配好,如果没配就手动加一下 Minikube 的安装路径到 PATH 里)

  4. 打开命令行(CMD 或 PowerShell),确保 Docker 已经启动,然后开始你的 Minikube 之旅 🚀


⌨️ Minikube 常用命令大全

下面这些命令是以后高频使用的,建议收藏 ⭐

1️⃣ 查看版本

bash 复制代码
minikube version

执行效果:

sh 复制代码
C:\Users\DELL>minikube version
W0323 17:19:55.916748    1800 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d

这里有个 Warning 不用慌,是因为 Docker 上下文配置的小问题,不影响使用,忽略它就好 👻


2️⃣ 启动 Minikube 集群 🚀

bash 复制代码
minikube start

这是最重要的命令,没有之一!

执行过程:

sh 复制代码
C:\Users\DELL>minikube start
W0323 17:24:17.006260   23440 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
* Microsoft Windows 11 Home China 10.0.22631.3296 Build 22631.3296 上的 minikube v1.32.0
* 根据现有的配置文件使用 docker 驱动程序
* 正在集群 minikube 中启动控制平面节点 minikube
* 正在拉取基础镜像 ...
    > index.docker.io/kicbase/sta...:  453.90 MiB / 453.90 MiB  100.00% 2.61 Mi
! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.42, but successfully downloaded docker.io/kicbase/stable:v0.0.42 as a fallback image
* Creating docker container (CPUs=2, Memory=4000MB) ...
* 正在 Docker 24.0.7 中准备 Kubernetes v1.28.3...
  - 正在生成证书和密钥...
  - 正在启动控制平面...
  - 配置 RBAC 规则 ...
* 配置 bridge CNI (Container Networking Interface) ...
* 正在验证 Kubernetes 组件...
  - 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
* 启用插件: storage-provisioner, default-storageclass
* 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

看到 "完成!" 就说明启动成功了,撒花!🎉🎊

⚠️ 注意:首次启动会下载约 450MB 的镜像,网速慢的话可以去泡杯咖啡☕,耐心等待。


3️⃣ 查看集群状态 👀

bash 复制代码
minikube status

想知道集群有没有在跑?这个命令告诉你答案:

sh 复制代码
C:\Users\DELL>minikube status
W0323 17:30:34.612462    4616 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

全是 Running 就代表一切正常,可以放心使用 👍


4️⃣ 获取集群 IP 地址

bash 复制代码
minikube ip

想知道你的 K8s 集群住在哪个 IP 上?用这个命令:

sh 复制代码
C:\Users\DELL>minikube ip
W0323 17:31:38.368205    2484 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
192.168.49.2

这个 IP 是你访问集群内部服务的入口,记小本本上 📝


5️⃣ SSH 进入集群内部 🔐

bash 复制代码
minikube ssh

想进到集群里面"实地考察"一下?这个命令带你进入 Minikube 节点内部:

sh 复制代码
C:\Users\DELL>minikube ssh
W0323 17:34:12.883919   24608 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
docker@minikube:~$

进去之后可以执行 docker ps 看看集群里跑了哪些容器:

sh 复制代码
docker@minikube:~$ docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS         PORTS     NAMES
1407610b3a2f   6e38f40d628d                "/storage-provisioner"   6 minutes ago   Up 6 minutes             k8s_storage-provisioner_storage-provisioner_kube-system_d4ee5dfb-c7e0-441c-baa2-12474b5ad5c4_1
f6403b614117   ead0a4a53df8                "/coredns -conf /etc..."   7 minutes ago   Up 7 minutes             k8s_coredns_coredns-5dd5756b68-w9wgv_kube-system_0a9ad253-2304-447e-8ab3-2f06da88a721_0
606d3bac1dbb   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_coredns-5dd5756b68-w9wgv_kube-system_0a9ad253-2304-447e-8ab3-2f06da88a721_0
4cdfd56f9d60   bfc896cf80fb                "/usr/local/bin/kube..."   7 minutes ago   Up 7 minutes             k8s_kube-proxy_kube-proxy-cdq9d_kube-system_2f2aca3c-4d8c-45c1-8efc-b7d0d4938025_0
821e8c045d0c   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_kube-proxy-cdq9d_kube-system_2f2aca3c-4d8c-45c1-8efc-b7d0d4938025_0
c7f05331626d   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_storage-provisioner_kube-system_d4ee5dfb-c7e0-441c-baa2-12474b5ad5c4_0
ae5966109c8a   6d1b4fd1b182                "kube-scheduler --au..."   7 minutes ago   Up 7 minutes             k8s_kube-scheduler_kube-scheduler-minikube_kube-system_75ac196d3709dde303d8a81c035c2c28_0
49f497991344   10baa1ca1706                "kube-controller-man..."   7 minutes ago   Up 7 minutes             k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_7da72fc2e2cfb27aacf6cffd1c72da00_0
51420b3b4a70   73deb9a3f702                "etcd --advertise-cl..."   7 minutes ago   Up 7 minutes             k8s_etcd_etcd-minikube_kube-system_9aac5b5c8815def09a2ef9e37b89da55_0
982fdca2d503   537434729123                "kube-apiserver --ad..."   7 minutes ago   Up 7 minutes             k8s_kube-apiserver_kube-apiserver-minikube_kube-system_55b4bbe24dac3803a7379f9ae169d6ba_0
7f2976f13746   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_kube-scheduler-minikube_kube-system_75ac196d3709dde303d8a81c035c2c28_0
b2b10a4815fa   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_kube-controller-manager-minikube_kube-system_7da72fc2e2cfb27aacf6cffd1c72da00_0
eff72a86aa15   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_kube-apiserver-minikube_kube-system_55b4bbe24dac3803a7379f9ae169d6ba_0
7236c52d6a38   registry.k8s.io/pause:3.9   "/pause"                 7 minutes ago   Up 7 minutes             k8s_POD_etcd-minikube_kube-system_9aac5b5c8815def09a2ef9e37b89da55_0

可以看到 kube-apiserveretcdkube-scheduler 等核心组件都在里面跑着------麻雀虽小,五脏俱全 🐦

💡 退出 SSH:输入 exit 回车即可。


6️⃣ 停止 Minikube 🛑

bash 复制代码
minikube stop

暂时不用了?这个命令帮你优雅关机,下次再 start 就能快速恢复,不用重新下载镜像:

sh 复制代码
C:\Users\DELL>minikube stop

省时间又省流量,良心设计!👏


7️⃣ 启动 Dashboard(可视化仪表板)📊

bash 复制代码
minikube dashboard

这是最炫酷的功能------打开一个 Web 界面,让你用图形化的方式管理集群!

第一次执行:

sh 复制代码
C:\Users\DELL>minikube dashboard
W0323 17:40:48.423278   11632 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
* 正在开启 dashboard ...
  - 正在使用镜像 docker.io/kubernetesui/dashboard:v2.7.0
  - 正在使用镜像 docker.io/kubernetesui/metrics-scraper:v1.0.8
* 某些 dashboard 功能需要启用 metrics-server 插件。为了启用所有功能,请运行以下命令:

        minikube addons enable metrics-server

* 正在验证 dashboard 运行情况 ...
* 正在启动代理...
* 正在验证 proxy 运行状况 ...
^C

如果中途按了 Ctrl+C 取消了,重新执行一次即可:

sh 复制代码
C:\Users\DELL>minikube dashboard
W0323 17:41:42.866075   25216 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\DELL\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
* 正在验证 dashboard 运行情况 ...
* 正在启动代理...
* 正在验证 proxy 运行状况 ...
* 正在使用默认浏览器打开 http://127.0.0.1:59903/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ ...

命令执行后,浏览器会自动打开一个界面 ,你就可以在上面看到 Pod、Service、Deployment 等各种资源的状态,贼直观 👀

⚠️ 如果提示启用 metrics-server 以获得完整功能,可以执行:

bash 复制代码
minikube addons enable metrics-server

📋 常用命令速查表

命令 作用 使用频率
minikube version 查看版本号 ⭐⭐
minikube start 启动集群(最重要的!) ⭐⭐⭐⭐⭐
minikube status 查看集群运行状态 ⭐⭐⭐⭐
minikube ip 获取集群 IP ⭐⭐⭐
minikube ssh 进入集群内部 ⭐⭐⭐
minikube stop 停止集群 ⭐⭐⭐
minikube dashboard 打开可视化面板 ⭐⭐⭐⭐
minikube delete 删除整个集群(慎用!)
minikube addons list 查看可用插件 ⭐⭐

🎯 本章小结

到这里,你已经成功在本地拥有了一个属于自己的 K8s 集群!🎉

这一章你学会了:

  • ✅ Minikube 是什么、为什么需要它
  • ✅ Minikube 的架构特点和支持的功能
  • ✅ 在 Windows 上安装 Docker + Minikube
  • ✅ 常用命令:start、status、ip、ssh、stop、dashboard
  • ✅ 如何进入集群内部"实地考察"

下一章,我们将正式开始在 Minikube 上部署第一个应用!K8s 的大门已经为你打开,冲鸭! 🦆💨

有问题随时翻回来看,或者在评论区留言交流~ 下篇见!👋


相关推荐
观远数据2 小时前
云原生BI的战略价值:不是技术选择,而是业务弹性的决定因素
java·人工智能·云原生
瀛川3 小时前
microVM 技术解析:面向多租户 Serverless 与 AI Agent 的微虚拟机架构
后端·云原生
爱莉希雅&&&3 小时前
Rocky Linux 10.1 + K8s 1.36.3 离线集群部署笔记(Kubernetes)
linux·笔记·docker·kubernetes·calico
SLD_Allen3 小时前
Kubernetes上的存算分离大数据平台
大数据·容器·kubernetes
Zhu7583 小时前
在k8s集群环境部署高可用的Apache Hadoop3.1.1定制版集群
hadoop·kubernetes
念何架构之路4 小时前
docker-Builder镜像构建
运维·docker·容器
IT二叔4 小时前
Kubernetes(K8s)-08-Deployment详解
云原生·容器·kubernetes
日取其半万世不竭13 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
张忠琳16 小时前
【NVIDIA】NVIDIA Container Toolkit v1.19.1--07-NVCDI模块:CDI Spec生成引擎深度分析之七
云原生·容器·架构·kubernetes·nvidia