这套 QuickStart 不是给你拿来“读懂概念”就结束的,而是帮你尽快把集群跑起来、发一个小应用、再亲手把它救回来。Kubernetes 真正难的地方,从来不是名词解释,而是当状态不对劲时,你能不能顺着线索快速定位问题。

这套 QuickStart 想帮你掌握什么

  • 熟悉 10-20 个最常用的 kubectl 命令。
  • 能读懂并修改基础 YAML:apiVersionkindmetadataspec
  • 理解流量、调度、存储、控制器之间是怎么串起来的。
  • 建立“看证据、找状态、再判断”的排障习惯。

推荐环境

  • 本地实验: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 最好按下面这个顺序读。

第一阶段:建立心智模型

  1. Introduction
  2. Basics
  3. Architecture

这一组回答三个核心问题:Kubernetes 在解决什么问题、最先要理解哪些对象、集群到底是谁在做决策。

第二阶段:掌握工作负载主链路

  1. Pod
  2. Deployment / ReplicaSet
  3. Service
  4. Namespace
  5. Probes

这一组会把“写 YAML -> 调度运行 -> 对外提供服务”的主链路串起来。

第三阶段:进入配置与存储

  1. ConfigMap / Secret
  2. Volume basics
  3. PV / PVC
  4. StorageClass

很多人前面学得很轻松,一到存储和配置就开始卡壳。这一组正是从“能跑”走向“能长期运维”的分界线。

第四阶段:理解有状态应用

  1. Headless Service
  2. StatefulSet
  3. Stateful apps
  4. MySQL on Kubernetes

这一组重点不是“多学几个对象”,而是理解为什么带数据的工作负载天然比无状态麻烦。

第五阶段:进入更安全的运维方式

  1. Declarative config
  2. Port-forward
  3. Canary release
  4. 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

这条路径更关注规范、约束和平台级安全发布。

每学完一篇都建议做的练习

别只看结论,最好固定做这套动作:

  1. 应用一个最小示例。
  2. get 看当前状态。
  3. describe 看详细原因。
  4. 看 events。
  5. 改一个字段。
  6. 观察状态变化。
  7. 再把它回滚。

这套循环会比背命令更快地建立直觉。

最小实验链路

建议用一个极小的工作负载贯穿整套 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 getkubectl describekubectl logskubectl get eventskubectl config get-contexts 这几类命令已经覆盖大部分基础场景。

Q: 什么时候算是可以从 QuickStart 进入生产实践主题了? A: 当你能独立部署一个小应用,并且把一次故障从现象追到根因,你就可以继续读 tips 和更偏生产实践的内容了。

下一步阅读

  • 先读 kubernetes-quickstart-introduction.md
  • 再读 kubernetes-quickstart-basics.mdkubernetes-quickstart-architecture.md
  • 开始进入排障和生产问题时,再转向 tips 系列

收个尾

把这篇当作地图,不要当作死记硬背的清单。Kubernetes 学得最快的方式,始终还是亲手做一个小变更,再亲手把一个真实故障查清楚。