1. 为什么先搭本地实验环境?
学 Kubernetes 最怕的一件事,就是只看概念不动手。Pod、Deployment、Service 这些对象,本质上都属于“看一遍不如跑一遍”的内容。所以在正式进入实操前,先准备一个本地实验环境非常重要。
官方工具说明页将 kind 和 minikube 都列为本地学习与日常开发的常用方式:kind 依赖容器运行环境,适合快速起集群;minikube 则可以在个人电脑上运行单节点或多节点本地集群,非常适合入门练习::cite[293].
本章我们就围绕这两个工具展开。你不需要两个都装,任选其一即可开始学习;但为了后续查阅方便,我会把两套完整命令都给出来。
2. 为什么选择 kind 或 minikube
2.1 kind:轻、快、适合纯实验
kind 的名字来自 Kubernetes in Docker。它使用容器来模拟节点,创建集群速度快、销毁方便,非常适合做课堂实验、CI 测试和本地快速验证。kind 官方 Quick Start 明确指出,创建集群可以简单到一条 kind create cluster,而且集群访问配置会自动写入 kubeconfig::cite[306].
如果你的目标是:
- 快速拉起一个临时集群;
- 更频繁地创建、删除集群;
- 主要做 YAML 练习与 API 学习;
那么 kind 往往是非常省心的选择。
2.2 minikube:更像“学习型单机实验室”
minikube 官方文档把它定义为“local Kubernetes”,强调的是让 Kubernetes 学习和开发更容易。它支持多种驱动方式,比如 Docker、Podman 或虚拟机管理器,执行 minikube start 就能创建集群::cite[152].
如果你的目标是:
- 想要一个更完整的本地学习环境;
- 希望顺手体验 dashboard、addons、service 访问;
- 想在本机长期保留一个练习集群;
那么 minikube 会更友好一些。
2.3 怎么选?
可以直接用下面这张表:
| 场景 | 更推荐 |
|---|---|
| 想极简、快速创建和删除集群 | kind |
| 想长期保留一个本地学习环境 | minikube |
| 做 CI / 自动化测试场景 | kind |
| 想体验更多本地扩展功能 | minikube |
如果你拿不准,第一次学习建议先用 kind;后续如果想体验更多本地能力,再补充 minikube。
3. 使用 kind 快速创建本地集群(完整命令)
kind 官方文档说明,它不强制要求安装 kubectl,但如果没有 kubectl,你将无法完成大部分 Kubernetes 示例操作。同时,kind 的核心命令包括创建集群、查看集群、删除集群以及通过 kubeconfig 与集群交互::cite[306].
3.1 前置条件
你需要先准备:
- 一个可用的容器运行环境(常见是 Docker Desktop);
kubectl;kind。
3.2 安装 kind(macOS / Homebrew 示例)
brew install kind
3.3 安装 kubectl(macOS / Homebrew 示例)
brew install kubectl
3.4 创建一个基于 v1.32 的 kind 集群
kind create cluster --name unit1 --image kindest/node:v1.32.0 --wait 60s
说明:kind 官方文档支持通过
--image指定不同 Kubernetes 版本对应的 node image,从而控制创建出来的集群版本::cite[306].
3.5 查看集群列表
kind get clusters
3.6 查看集群信息
kubectl cluster-info --context kind-unit1
3.7 查看节点状态
kubectl get nodes
3.8 查看客户端与服务端版本
kubectl version
3.9 删除集群
kind delete cluster --name unit1
3.10 kind 的几个实用说明
kind 官方文档指出,默认情况下,集群访问配置会写入 ${HOME}/.kube/config;如果设置了 KUBECONFIG 环境变量,则会按对应路径处理 kubeconfig。也就是说,创建完集群后通常不需要额外手动配置上下文,kubectl 就能直接用::cite[306].
如果你只想最快验证是否成功,可以把 kind 的最短路径记成下面三步:
kind create cluster --name unit1 --image kindest/node:v1.32.0 --wait 60s
kubectl get nodes
kubectl get pods -A
4. 使用 minikube 快速创建本地集群(完整命令)
minikube 官方文档说明,运行本地 Kubernetes 至少建议具备 2 个 CPU、2GB 可用内存、20GB 可用磁盘空间,并且准备好容器或虚拟机驱动环境。它的核心启动命令就是 minikube start::cite[152].
4.1 安装 minikube(macOS / Homebrew 示例)
brew install minikube
4.2 安装 kubectl(如果尚未安装)
brew install kubectl
4.3 使用 Docker 驱动启动一个 v1.32 集群
minikube start --driver=docker --kubernetes-version=v1.32.0
4.4 查看节点
kubectl get nodes
4.5 查看所有命名空间中的 Pod
kubectl get pods -A
4.6 查看 minikube 状态
minikube status
4.7 停止集群
minikube stop
4.8 删除集群
minikube delete
4.9 如果本机还没有 kubectl,minikube 也能临时代理调用
官方文档提到,如果你的机器上还没有独立安装 kubectl,也可以先用下面这种方式操作集群:
minikube kubectl -- get pods -A
你甚至可以在 shell 配置中加入一个别名,简化日常输入:
alias kubectl="minikube kubectl --"
这对于第一次入门特别友好,因为你可以先把集群跑起来,再慢慢补齐本地工具链::cite[152].
5. kubectl 基本配置:你到底在连哪个集群?
Kubernetes 官方工具页指出,kubectl 是 Kubernetes 的命令行工具,用来部署应用、检查与管理集群资源,以及查看日志。它是你和集群打交道最重要的入口之一::cite[293].
5.1 kubeconfig 是什么
kubectl 通过 kubeconfig 知道自己要连接哪个集群、使用什么认证信息、当前上下文是什么。无论是 kind 还是 minikube,在成功创建集群后,通常都会帮你把连接信息写到默认 kubeconfig 中。
最常见的默认路径是:
~/.kube/config
5.2 查看当前上下文
kubectl config current-context
5.3 查看所有上下文
kubectl config get-contexts
5.4 切换上下文
kubectl config use-context kind-unit1
如果你用的是 minikube,则上下文名称通常就是 minikube。
6. kubectl 常用命令,建议一开始就会这几个
下面这组命令,属于学习 Kubernetes 的“新手高频工具箱”:
| 命令 | 作用 |
|---|---|
kubectl get nodes |
查看节点 |
kubectl get pods -A |
查看所有命名空间的 Pod |
kubectl get svc -A |
查看 Service |
kubectl get deploy -A |
查看 Deployment |
kubectl describe pod <pod-name> |
查看对象详细事件和状态 |
kubectl logs <pod-name> |
查看容器日志 |
kubectl exec -it <pod-name> -- /bin/sh |
进入容器 |
kubectl delete -f xxx.yaml |
删除通过 YAML 创建的资源 |
kubectl apply -f xxx.yaml |
按声明式方式创建/更新资源 |
建议你现在就先执行几条最基础的:
kubectl get nodes
kubectl get pods -A
kubectl get ns
kubectl cluster-info
如果这些命令都能正常返回,说明你的本地实验环境已经准备好了。
7. 一套推荐的入门动作顺序
如果你想少走弯路,可以按照下面顺序来:
- 选一种工具:kind 或 minikube;
- 拉起一个 v1.32 集群;
- 用
kubectl get nodes确认节点 Ready; - 用
kubectl get pods -A看系统组件是否正常; - 再开始写你的第一个 Pod YAML。
这也是为什么本教程把“本地环境”放在 Pod 实操之前——因为没有一个能随时试错的环境,很多概念都会停留在纸面上。
8. 本章小结
本章你应该完成两件事:
- 知道 kind 和 minikube 各自适合什么场景;
- 至少成功拉起一个 Kubernetes v1.32 本地集群,并用 kubectl 连上它。
只要这一关打通,后面的 YAML、Pod、Deployment、Service 都可以边学边验。下一章,我们就正式进入第一个真正运行起来的 Kubernetes 对象:Pod::cite[293].
📝 版权声明:本文为原创技术博客,转载请注明出处。
如文章中存在错误或不准确之处,欢迎在评论区指正,感谢您的阅读与支持!