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

Minikube 入门:从集群搭建到清理的完整流程

访客 技术 2026年7月26日 3

本教程将引导您使用 Minikube 在本地环境中快速体验 Kubernetes 的核心功能。我们将依次完成集群创建、应用部署、服务暴露、插件管理以及最终的资源清理。

1. 初始化集群

首先,通过 minikube start 命令启动一个单节点的 Kubernetes 集群。该命令会自动配置虚拟环境并安装 kubectl 命令行工具,确保其能够与集群通信。

$ minikube start
* minikube v1.14.0 on Centos 7.8.2003
* 使用 docker 驱动
* 启动控制平面节点 minikube
* 准备 Kubernetes v1.19.2 ...
* 完成!kubectl 已配置为默认使用 "minikube"

2. 部署应用

Kubernetes 中,Pod 是运行容器的最小单元,而 Deployment 则负责管理 Pod 的声明式更新和弹性扩缩。

使用 kubectl create deployment 命令,基于 k8s.gcr.io/echoserver:1.4 镜像创建一个名为 hello-node 的 Deployment。该 Deployment 会确保 Pod 始终保持运行状态。

$ kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
deployment.apps/hello-node created

$ kubectl get deployments
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
hello-node   1/1     1            1           36s

$ kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
hello-node-7567d9fdc9-prltr   1/1     Running   0          51s

$ kubectl get events
LAST SEEN   TYPE     REASON                    OBJECT                             MESSAGE
73s         Normal   Scheduled                 ...                                Successfully assigned ...
71s         Normal   Pulling                   ...                                Pulling image "echoserver:1.4"
43s         Normal   Pulled                    ...                                Successfully pulled image ...

3. 暴露服务

默认情况下,Pod 仅拥有集群内部 IP。若要从外部访问应用,必须创建 Service 资源。以下命令将 Deployment 暴露为 LoadBalancer 类型的 Service,并指定端口 8080。

$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
service/hello-node exposed

$ kubectl get services
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello-node   LoadBalancer   10.109.212.214   <pending>     8080:32765/TCP   15s
kubernetes   ClusterIP      10.96.0.1        <none>        443/TCP          5h31m

$ minikube service list
| default | hello-node | 8080 | http://192.168.49.2:32765 |

在 Minikube 环境中,LoadBalancer 类型的 Service 可以通过 minikube service hello-node 命令在浏览器中直接打开。

4. 管理插件

Minikube 提供了丰富的内置插件,用于扩展集群功能。以下示例演示如何启用、查看和禁用 metrics-server 插件。

$ minikube addons list
| metrics-server | minikube | disabled |

$ minikube addons enable metrics-server
* 已启用 'metrics-server' 插件

$ minikube addons list | grep metrics
| metrics-server | minikube | enabled ✅ |

$ kubectl get pod,svc -n kube-system
pod/metrics-server-d9b576748-5mh9l     1/1     Running   0   40s
service/metrics-server   ClusterIP   10.103.101.207   <none>   443/TCP   40s

$ minikube addons disable metrics-server
* 已禁用 'metrics-server' 插件

5. 清理资源

实验完成后,依次删除 Service 和 Deployment,然后再停止并销毁整个 Minikube 集群。

$ kubectl delete service hello-node
service "hello-node" deleted

$ kubectl delete deployment hello-node
deployment.apps "hello-node" deleted

$ minikube stop
* 正在停止节点 "minikube" ...
* 1个节点已停止。

$ minikube status
host: Stopped
kubelet: Stopped
apiserver: Stopped

$ minikube delete
* 正在删除 "minikube" 集群 ...
* 已删除 "minikube" 的所有痕迹。

参考链接

相关文章

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...

发表评论

访客

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