9.1 Minikube与Kind:桌面试验田


9.1 Minikube 与 Kind:桌面试验田

本节摘要:Minikube 与 Kind 是桌面建集群的两大主流工具:前者面向"一条命令跑起来",内置插件与仪表盘;后者用容器模拟节点、多节点集群用一份清单声明,贴近真实拓扑,适合反复销毁重建的实验。本节完整走一遍两种建田流程,并用全册的绿荫书屋做一次"整田验收"。

工具选哪家

如果这本手册你从头读到现在还没动手,多半卡在"没有集群"这步。好消息是:一块试验田只需要一台普通电脑。两大工具各有性情:

维度 Minikube Kind
定位 面向入门的单机集群 容器即节点的实验集群
形态 虚拟机或容器里跑整套 每个节点是一个容器
多节点 支持但非强项 一份清单随意声明
顺手之处 插件一条命令(含 Ingress Controller) 与容器生态贴合、启停极快
典型场景 跟教程、跑通示例 销毁重建的实验、本地验证

我的建议:跟本手册练习用 Minikube(少配置),做拓扑实验(比如模拟三节点调度)换 Kind。两者并不互斥,装在一个机器上相安无事。

用 Minikube 开田

# 建田:默认单节点 会自动选择本机可用的驱动 minikube start # Done! kubectl is now configured to "minikube" cluster and "default" namespace by default # 验收:这块田有几台节点 田里预装了什么 kubectl get nodes # NAME STATUS ROLES AGE VERSION # minikube Ready control-plane 48s v1.29.3 # 一台节点身兼总站与田间小屋(学习场景的合理简化) kubectl get pods -n kube-system # NAME READY STATUS AGE # coredns-5d78c9869d-7xk2q 1/1 Running 1m # etcd-minikube 1/1 Running 1m # kube-apiserver-minikube 1/1 Running 1m # 熟面孔全在:第二章的四个科室都能在这份名单里对上号
# 装门卫:第四章欠的 Ingress Controller 一条命令补齐 minikube addons enable ingress # ingress was successfully enabled # 临时借用这块田的算力:把本机镜像直接喂给它(免推仓库) minikube image load greenlib/web:1.0.0 # 或在 shell 里执行 minikube docker-env 按提示配置后 本机构建即入田 # 用完歇田(不销毁 下次秒醒) minikube stop

addons 是 Minikube 的贴心处:仪表盘、Ingress、metrics-server 都是开关式预置,第四章的门卫、第八章的气象站,在这里都是一条命令的事。

用 Kind 开一块三节点的田

# 集群清单:一台总站 三间小屋(内容即配置) kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker - role: worker
kind create cluster --config kind-config.yaml --name greenlib-lab # Creating cluster "greenlib-lab" ... # Set kubectl context to kind-greenlib-lab kubectl get nodes # NAME STATUS ROLES AGE VERSION # greenlib-lab-control-plane Ready control-plane 30s v1.29.3 # greenlib-lab-worker Ready <none> 24s v1.29.3 # greenlib-lab-worker2 Ready <none> 24s v1.29.3 # greenlib-lab-worker3 Ready <none> 24s v1.29.3 # 三台工作节点的价值:调度真的有得选了 kubectl apply -f web-deployment.yaml kubectl get pods -o wide # NAME NODE # greenlib-web-7d9b6c5f4-8xzqm greenlib-lab-worker # greenlib-web-7d9b6c5f4-mn2pv greenlib-lab-worker2 # greenlib-web-7d9b6c5f4-qk8te greenlib-lab-worker3 # 三株苗被选地科室分到三台节点——2.1 讲的打分场景肉眼可见 # 销毁重建:试验田的最大美德 kind delete cluster --name greenlib-lab # Deleting cluster "greenlib-lab" ...

Kind 的节点是容器,所以建田销毁都在秒级。这份"挥霍得起"的特性正是实验精神的护城河:敢删、敢坏、敢重来——第一次亲手 kubectl delete node 看园丁怎么处理孤儿苗,就在这种田里做。

整田验收:把全册跑一遍

一块新田的验收,最踏实的办法是把书屋整套种上去走一遍主线:

# 主线一条龙:建田 建责任田 下种 装闸 立牌 kubectl create namespace greenlib-prod kubectl apply -f web-deployment.yaml -n greenlib-prod kubectl apply -f web-service.yaml -n greenlib-prod kubectl apply -f api-configmap.yaml -f api-deployment.yaml -n greenlib-prod kubectl rollout status deployment/greenlib-web -n greenlib-prod # deployment "greenlib-web" successfully rolled out # 验收通过的标准:第三到第五章的核心对象全部就绪 kubectl get deploy,svc,cm -n greenlib-prod # NAME READY UP-TO-DATE AVAILABLE # deployment.apps/greenlib-web 3/3 3 3 # NAME TYPE CLUSTER-IP PORT(S) # service/greenlib-web ClusterIP 10.96.12.40 80/TCP # NAME DATA AGE # configmap/api-config 5 2m

从零到这条验收输出,桌面上的时间成本通常一刻钟上下。之后你拥有的是一块完全属于你的田:全册每一节的命令都可以在这里重放,每一次"如果我删掉它会怎样"的好奇心都有处安放。

⚠️ 常见坑:试验田的资源别开太小。默认配置跑书屋全套绰绰有余,但若再装监控套件,Minikube 建议显式给足(start 时加参数指定内存与核数);Kind 则留意本机容器运行时的资源上限。田太瘦的典型症状是苗集体 Pending——恰好是 9.4 排错手册的第一个词条。

本节要点回顾

  • Minikube 重顺手(addons 一条命令装门卫与气象站),Kind 重拓扑(清单声明多节点,销毁重建秒级)
  • 试验田节点名单里能对上第二章每个科室的真身
  • minikube image load 免推仓库,本机镜像直接入田
  • 多节点田能肉眼观察选地科室的打分结果(苗分散到各节点)
  • 整田验收 = 把书屋主线一条龙重放,从零到全绿一刻钟

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U