Skip to content

从 Linux 与 Kubernetes 学架构 ​

顶级开源项目值得学的不是目录有多大,而是它们如何处理真实的并发、失败、资源竞争和长期演进。

text
谁声明目标
-> 谁保存事实
-> 谁消费事件
-> 谁执行工作
-> 谁拥有资源
-> 失败后如何重试或回滚
-> 用什么证据证明系统仍在工作

先从两条主线进入:

  1. 控制回路、调度与 cgroup:Kubernetes 怎样收敛状态,Linux 怎样调度和限制进程。
  2. Pod 网络:从 socket 到 Service:一次请求怎样穿过 network namespace、veth、CNI、Service 与节点网络。
  3. Service 控制面与节点代理:EndpointSlice 怎样产生,节点怎样把 Service 物化为本地转发规则。
  4. NetworkPolicy:声明访问意图到节点执行:流量允许规则如何选择 Pod、隔离方向,并由 CNI 落到数据面。
  5. 持久化存储:PVC 到 Linux VFS:声明、调度、CSI、挂载与真实写入如何接成一条链。
  6. 可观测性:从事件到可验证证据:日志、指标、trace、Event 与内核 trace 各自的职责和关联方式。
  7. 扩展与兼容:稳定契约如何承载演进:Linux UAPI 与 Kubernetes CRD、controller、版本化 API 的设计边界。
  8. 源码阅读:从行为问题追到架构边界:用 Linux 与 Kubernetes 的真实入口建立可复用的阅读方法。
  9. 源码实证:Deployment controller 如何收敛:固定 Kubernetes v1.31.0,追踪事件、队列、同步与状态分支。
  10. 源码实证:Linux openat() 如何穿过 VFS:固定 Linux v6.10,追踪 fd、路径遍历、权限与文件系统分派。

学习规划与研究资料库