KKubepath
L1

核心原理

控制面、对象与调度

所有排障最终都会回到这一层:一个对象写进 etcd 之后,是谁在看着它、把它变成节点上真实运行的进程。

7 节课 · 约 4 小时已完成 0/7
  1. 1

    控制面解剖:一次 kubectl apply 的全过程

    原理35 分钟

    把 apiserver、etcd、scheduler、controller-manager、kubelet 串成一条链,之后每个故障都能定位到具体环节。

    • 按顺序讲出 kubectl apply 之后发生的每一步,以及每步的负责组件
    • 说清 apiserver 为什么是唯一入口,其它组件之间为什么不直接通信
    • 知道每个控制面组件挂掉之后集群还能做什么、不能做什么
  2. 2

    声明式模型与控制器循环

    原理30 分钟仅大纲

    理解 reconcile,就理解了 K8s 的全部脾气:它不执行命令,它只是不停地把现状拉向期望。

    • 解释期望态 / 实际态 / reconcile 三者的关系
    • 读懂对象的 spec 与 status 分工,以及 ownerReferences 的级联删除
    • 说清 finalizer 卡住时资源为什么删不掉,该怎么处理
  3. 3

    工作负载对象:Deployment 到 StatefulSet

    原理35 分钟仅大纲

    选错工作负载类型,后面所有的滚动更新、扩缩容和存储绑定都会别扭。

    • 给定一个业务形态,选出合适的工作负载类型并说明理由
    • 讲清 StatefulSet 的稳定网络标识与 volumeClaimTemplates 意味着什么
    • 配置滚动更新策略,控制发布过程中的可用副本数
  4. 4

    调度器:Pod 为什么落在这台节点上

    原理35 分钟仅大纲

    requests 决定调度,limits 决定运行。这两个字段配错,集群要么调不满,要么一压就崩。

    • 区分 requests 与 limits 的作用时机,说清三种 QoS 的驱逐顺序
    • 用亲和性、污点容忍与拓扑分布约束控制 Pod 落点
    • 读懂 Pending Pod 的 Events,判断是资源不足还是约束冲突
  5. 5

    kubelet 与 Pod 生命周期:探针、驱逐与预留

    原理30 分钟仅大纲

    CrashLoopBackOff、Evicted、ContainerCreating —— 这三个状态背后是 kubelet 的三套完全不同的逻辑。

    • 正确配置 startup / liveness / readiness 三种探针,避免自杀式重启
    • 解释节点资源预留与驱逐阈值,算出一台节点真正可分配多少资源
    • 按 Pod 状态选择正确的排查入口(describe、logs、events、节点侧)
  6. 6

    K8s 网络模型:Pod IP、Service 与 DNS

    原理35 分钟仅大纲

    「每个 Pod 一个可路由 IP」这条约定,是理解 Service、CNI 和所有网络故障的起点。

    • 说出 K8s 网络模型的三条基本约定,以及 CNI 负责实现哪一部分
    • 区分 ClusterIP、Headless、NodePort、LoadBalancer 的适用场景
    • 追踪一次跨节点访问 Service 的完整数据路径
  7. 7

    认证、授权与 ServiceAccount

    原理30 分钟仅大纲

    谁能动这个集群、能动到什么程度 —— 交付前必须回答清楚,交付后再补就是一场大手术。

    • 区分认证与授权两个阶段,说清用户和 ServiceAccount 的不同来源
    • 为一个团队设计最小权限的 Role / RoleBinding 组合
    • 用 kubectl auth can-i 验证权限,排查 Forbidden 报错