Kubernetes 学习路线图:一套从入门到实战的 Quick Start 指南
按正确顺序学习 Kubernetes:先概念、再工作负载、再网络存储与排障,避免知识点碎片化。
这套 QuickStart 不是给你拿来“读懂概念”就结束的,而是帮你尽快把集群跑起来、发一个小应用、再亲手把它救回来。Kubernetes 真正难的地方,从来不是名词解释,而是当状态不对劲时,你能不能顺着线索快速定位问题。
这套 QuickStart 想帮你掌握什么
- 熟悉 10-20 个最常用的
kubectl命令。 - 能读懂并修改基础 YAML:
apiVersion、kind、metadata、spec。 - 理解流量、调度、存储、控制器之间是怎么串起来的。
- 建立“看证据、找状态、再判断”的排障习惯。
推荐环境
- 本地实验:Minikube 或 K3s。
- 团队练习:1 个控制平面 + 1 个工作节点就够用。
- 必备工具:
kubectl、文本编辑器,helm可选。 - 最好预留一个
demo命名空间专门做实验。
正确的学习节奏
别一口气把整套文章读完,再告诉自己“我大概懂了”。Kubernetes 的很多知识点,只有在你真正看过状态变化、踩过一次坑之后才会留下来。
我的建议是:
- 一天看 1-2 篇。
- 每个示例命令都自己敲一遍。
- 每学一个主题,故意改坏一次。
- 把错误现象、证据和修复方式记下来。
这些笔记以后往往就是你最有价值的 runbook 雏形。
开始前先确认武器是好的
在正式进入系列之前,先确认你的环境能正常回答这些命令:
kubectl version --client
kubectl config get-contexts
kubectl get nodes
kubectl get pods -A
如果你现在还没有集群,先去装好 Minikube 或 K3s,再继续往下走。
推荐阅读顺序
这套 QuickStart 最好按下面这个顺序读。
第一阶段:建立心智模型
- Introduction
- Basics
- Architecture
这一组回答三个核心问题:Kubernetes 在解决什么问题、最先要理解哪些对象、集群到底是谁在做决策。
第二阶段:掌握工作负载主链路
- Pod
- Deployment / ReplicaSet
- Service
- Namespace
- Probes
这一组会把“写 YAML -> 调度运行 -> 对外提供服务”的主链路串起来。
第三阶段:进入配置与存储
- ConfigMap / Secret
- Volume basics
- PV / PVC
- StorageClass
很多人前面学得很轻松,一到存储和配置就开始卡壳。这一组正是从“能跑”走向“能长期运维”的分界线。
第四阶段:理解有状态应用
- Headless Service
- StatefulSet
- Stateful apps
- MySQL on Kubernetes
这一组重点不是“多学几个对象”,而是理解为什么带数据的工作负载天然比无状态麻烦。
第五阶段:进入更安全的运维方式
- Declarative config
- Port-forward
- Canary release
- tips / troubleshooting 系列
走到这里,你就不再只是“会发版”,而是开始具备更稳妥地发版、回滚和排障的能力。
按角色推荐阅读路径
不是每个人都要走同一条路线。
如果你是开发者
优先看:
- Basics
- Pod
- Deployment
- Service
- ConfigMap / Secret
- Probes
这条路径最适合先把应用发起来、跑起来、看起来。
如果你做运维或 SRE
优先看:
- Architecture
- Namespace
- Service
- PV / PVC
- StorageClass
- StatefulSet
- Troubleshooting playbook
这条路径更偏调度、网络、存储和故障诊断。
如果你做平台工程
优先看:
- Architecture
- Declarative config
- Namespace
- Probes
- Canary release
- RBAC / NetworkPolicy / autoscaling tips
这条路径更关注规范、约束和平台级安全发布。
每学完一篇都建议做的练习
别只看结论,最好固定做这套动作:
- 应用一个最小示例。
- 用
get看当前状态。 - 用
describe看详细原因。 - 看 events。
- 改一个字段。
- 观察状态变化。
- 再把它回滚。
这套循环会比背命令更快地建立直觉。
最小实验链路
建议用一个极小的工作负载贯穿整套 QuickStart:
kubectl create namespace demo
kubectl apply -f app.yaml -n demo
kubectl get pods -n demo
kubectl describe pod -n demo <pod-name>
kubectl get svc -n demo
kubectl get events -n demo --sort-by=.metadata.creationTimestamp
以后你学 Deployment、Service、Probes、PVC,都可以拿这个实验环境反复练。
新手最常见的误读
“Kubernetes 是 PaaS”
不准确。它更像编排平台,而不是帮你自动做好产品工程的一切。
“Pod 像一台轻量虚拟机”
也不对。Pod 本质上是可被替换的工作负载单元,不是拿来长期守着不动的机器。
“Service 是一个在跑的服务进程”
不是。Service 是稳定的网络抽象,背后真正处理流量的是被它选中的 Pod。
“Namespace 就是安全隔离”
Namespace 主要解决组织与作用域问题,不替代 RBAC、NetworkPolicy 和其他安全机制。
越早形成越好的运维习惯
- Manifest 放进版本库。
- Label 体系尽早统一。
- 不要长期放任 requests / limits 为空。
- 日志和指标从一开始就打开。
- 发版前先想回滚,不要出事后才想。
这些东西看起来不性感,但它们比大多数技巧都更值钱。
kubectl apply 前先问自己几件事
- 我的期望状态是什么?
- 谁负责把它收敛过去?
- 成功信号是什么?
- 失败信号是什么?
- 回滚怎么做?
- 删除以后什么会留下来?
如果这些问题答不上来,说明这次变更还没有准备好。
学完这套系列后,你至少应该会什么
读完整套 QuickStart 之后,你至少应该能做到:
- 部署一个基础应用
- 用 Service 暴露访问入口
- 解释 Pod 为什么 Pending 或不断重启
- 挂载配置和持久存储
- 理解无状态与有状态工作负载的区别
- 看懂事件链并定位大致故障方向
做到这些,就已经能从“教程读者”进入“能实际操作集群”的阶段了。
FAQ
Q: 要不要先把所有对象背下来再开始动手? A: 没必要。先学够把一个应用跑起来的知识,然后让真实状态反馈带你进入下一层理解。
Q: 初期最重要的命令有哪些?
A: kubectl get、kubectl describe、kubectl logs、kubectl get events、kubectl config get-contexts 这几类命令已经覆盖大部分基础场景。
Q: 什么时候算是可以从 QuickStart 进入生产实践主题了? A: 当你能独立部署一个小应用,并且把一次故障从现象追到根因,你就可以继续读 tips 和更偏生产实践的内容了。
下一步阅读
- 先读
kubernetes-quickstart-introduction.md - 再读
kubernetes-quickstart-basics.md和kubernetes-quickstart-architecture.md - 开始进入排障和生产问题时,再转向 tips 系列
收个尾
把这篇当作地图,不要当作死记硬背的清单。Kubernetes 学得最快的方式,始终还是亲手做一个小变更,再亲手把一个真实故障查清楚。