学习路径

按阶段推进,不堆概念

Path 是课程地图:先选阶段与课节,再进入 Scene 跑完整剧本。 Atlas 始终作为命令随查入口,步骤与仓库 YAML 对齐。
Beginner4 课节

简单阶段

随查本阶段命令

搞清集群长什么样,用最少命令把一个应用跑起来、看日志、会查状态。完成「部署→暴露→观测」最小闭环。

学完能做什么

  • 0110 分钟内用 get nodes / get ns / get pods -A 说清本集群的节点、命名空间与 Pod 分布
  • 02对任一异常 Pod,按 get → describe → logs 顺序拿出一条 Events 或日志证据
  • 0330 分钟内按 examples/minimal-loop/ 完成 apply → port-forward → curl localhost:8080 通

课节

01为什么需要 Kubernetes用扩容、自愈、发布三个实战痛点建立直觉。路径课节展开

单机 docker run 能搞定 demo,但业务一多就会碰到:实例挂了谁拉起?流量怎么稳定指向新副本?发版如何滚动而不是停机替换?Kubernetes 把「期望状态」写进 API 对象,控制器持续对齐现实与期望——这就是编排的核心价值,而不是「又一个虚拟机面板」。实战里你改的是 YAML/清单,而不是 SSH 上机器改进程。

实操步骤

  1. 1场景:活动流量 3 倍——你要的是「永远 N 个健康副本」,不是手点两台机器。
  2. 2场景:半夜进程 OOM——Deployment 会按期望副本把 Pod 拉起来(配合探针更稳)。
  3. 3场景:发版——改 image 触发滚动,而不是停掉唯一容器再启。
  4. 4记住:kubectl 操作的是 API 对象,不是直接 SSH 进机器。

配套场景剧本

本课暂无独立场景剧本(有意不为每课硬凑空壳)。请用上方关联命令进图鉴,或按步骤在仓库examples/自行对照。

验收·能用一句话说清:K8s 管的是期望状态,不是一次性脚本。

02集群长什么样Control Plane、Node、Pod、Namespace 一张图说清。路径课节展开

Control Plane(API Server / 调度 / 控制器)接收你的声明;Node 提供 CPU/内存与容器运行时;Pod 是最小调度单元。Namespace 做逻辑隔离——默认别把所有实验都扔进 default。你几乎从不「登录某台机器装软件」,而是创建 Pod/Deployment,让调度器决定落在哪台 Node。

实操步骤

  1. 1kubectl get nodes — 确认工作节点 Ready(NotReady 先别怪应用)。
  2. 2kubectl get ns — 看环境怎么切;实验建议 create ns demo。
  3. 3kubectl get pods -A — 扫系统组件与业务 Pod 分布在哪些命名空间。
  4. 4把「一个业务进程」映射成「至少一个容器,装在一个 Pod 里」。

配套场景剧本

本课暂无独立场景剧本(有意不为每课硬凑空壳)。请用上方关联命令进图鉴,或按步骤在仓库examples/自行对照。

验收·能解释 Node Ready、Pod Running、Namespace 隔离各解决什么问题。

03第一批必会命令查询与排障的最小命令集(肌肉记忆)。路径课节展开

排障有固定顺序:先 get 看有没有、状态如何;再 describe 看 Events;再 logs 看应用输出;需要时 exec 进容器验证网络/环境。apply / delete 负责把 YAML 变成(或撤掉)集群对象。生产事故里最忌讳一上来就 delete pod 碰运气——先看清状态。

实操步骤

  1. 1get:列表与状态(pods / deploy / svc / ns)。
  2. 2describe:配置摘要 + Events(Pending、ImagePullBackOff、探针失败)。
  3. 3logs:标准输出;CrashLoop 时加 --previous。
  4. 4exec:进容器看 DNS/文件/环境变量(生产慎写)。
  5. 5apply / delete:声明式落地与清理实验现场。

配套场景剧本

本课暂无独立场景剧本(有意不为每课硬凑空壳)。请用上方关联命令进图鉴,或按步骤在仓库examples/自行对照。

验收·能按 get → describe → logs(→ exec)顺序口述一次排障路径。

04最小闭环:Deploy + Service从 YAML 到访问到观测,完整走通部署→暴露→访问。含演练路线

本课目标

从 YAML 到访问到观测,完整走通部署→暴露→访问。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/minimal-loop/:apply Deployment + Service。
  2. 2验收:get deploy READY 齐全;port-forward 后 curl localhost:8080 通。
  3. 3清理:kubectl delete -f examples/minimal-loop/(细节见场景收尾)。
Intermediate4 课节

中阶阶段

随查本阶段命令

日常开发与初级运维实战:探针、配置密钥、滚动发布回滚、固定排障决策树。

学完能做什么

  • 01复现 readiness 摘流量:get endpoints 出现空地址,并用 describe/logs 分清 liveness 过激与应用崩溃
  • 02改 ConfigMap 后用 exec 证实 env 仍旧值,rollout restart 后复验为新值
  • 03对坏镜像发布用 rollout status 判定卡住,rollout undo 后 READY 恢复并说出 revision
  • 04对 Pending / ImagePullBackOff / CrashLoopBackOff 各说出第一条命令与 Events 关键词

课节

01探针与自愈liveness / readiness 配错会怎样——结合样例 YAML。含演练路线

本课目标

liveness / readiness 配错会怎样——结合样例 YAML。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/probes/:apply web-probes 基线。
  2. 2验收:能区分 readiness 摘流量 vs liveness 过激导致 CrashLoop。
  3. 3排障顺序:get pods → get endpoints → describe/logs --previous(细节见场景)。
02配置与密钥ConfigMap / Secret 注入、变更会不会自动滚动。含演练路线

本课目标

ConfigMap / Secret 注入、变更会不会自动滚动。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/config/:apply cm + deploy/web-config。
  2. 2验收:get cm 已是新值但 exec 仍旧值 → 再 rollout restart 后生效。
  3. 3练习:create secret 仅本机;勿把明文 Secret 提交仓库。
03发布与回滚set image / apply → status → history → undo。含演练路线

本课目标

set image / apply → status → history → undo。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/minimal-loop/ 做基线;合法滚动:set image deploy/web nginx=nginx:1.26-alpine。
  2. 2验收:坏 tag 卡住 → rollout undo 恢复 READY;能口述 status/history/undo。
  3. 3细节与故障报告模板以场景页为准(path 不重复整段 runbook)。
04排障套路Pending / ImagePull / CrashLoop 决策树。含演练路线

本课目标

Pending / ImagePull / CrashLoop 决策树。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1入口习惯:get pods -o wide 先记 STATUS/READY/RESTARTS,禁止一上来 delete。
  2. 2验收:三种 STATUS 各能说出「下一跳命令」(describe / logs --previous)。
  3. 3输出最小故障报告:现象 / 证据 / 结论(模板见场景预填报告)。
Advanced4 课节

高阶阶段

随查本阶段命令

靠近生产的实战直觉:南北向流量、存储订单、RBAC 最小权限、交付与可观测清单。

学完能做什么

  • 01对同一访问需求口述 ClusterIP / NodePort / Ingress / port-forward 的取舍与适用场景
  • 02用 get sc,pvc,pv 讲通「PVC 下单 → SC 供货 → PV 绑定」,PVC Pending 时会 describe 找因
  • 03auth can-i 验证 Role 边界:get pods=yes、delete pods=no 各留一条输出
  • 04按 diff → 记 image → status/wait → undo 就绪走完一次发版门禁,并说出 Helm/GitOps 的定位

课节

01网络模型直觉ClusterIP / NodePort / LB / Ingress 怎么选。含演练路线

本课目标

ClusterIP / NodePort / LB / Ingress 怎么选。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/minimal-loop/ 的 ClusterIP Service。
  2. 2验收:能口述 ClusterIP / NodePort / Ingress / port-forward 各自适用场景。
  3. 3现象 Ingress ADDRESS 空 → 先查 Controller 是否安装(细节见场景)。
02存储一条业务故事PVC 下单、PV 供货、SC 自动供应。含演练路线

本课目标

PVC 下单、PV 供货、SC 自动供应。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/storage/pvc.yaml;先 get sc,pvc,pv。
  2. 2验收:能用订单/库存/货架类比 PVC/PV/SC;Pending 时会 describe。
  3. 3多副本 + 单 RWO 风险见场景(勿在 path 重复整段 runbook)。
03安全与 RBAC谁能对什么资源做什么——can-i 实战。含演练路线

本课目标

谁能对什么资源做什么——can-i 实战。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机对照 examples/rbac/role-pod-reader.yaml。
  2. 2验收:can-i get pods --as=… 为 yes、delete pods 为 no。
  3. 3能区分 Role vs ClusterRole 范围(细节见场景判断)。
04交付与可观测入门发版清单、指标日志、Helm/GitOps 定位。含演练路线

本课目标

发版清单、指标日志、Helm/GitOps 定位。

路线点

Path 只标方向;完整演练只保留一个入口,不在这里重复命令、配置与验收。

  1. 1本机用 diff / apply / rollout / wait 串一条最小交付链。
  2. 2验收:能口述「变更前检查 → 发布 → 验证 → 回滚」四步。
  3. 3失败时优先 undo / 关流量,细节与报告模板见场景。