Appearance
从 Linux 与 Kubernetes 学架构
顶级开源项目值得学的不是目录有多大,而是它们如何处理真实的并发、失败、资源竞争和长期演进。
text
谁声明目标
-> 谁保存事实
-> 谁消费事件
-> 谁执行工作
-> 谁拥有资源
-> 失败后如何重试或回滚
-> 用什么证据证明系统仍在工作先从两条主线进入:
- 控制回路、调度与 cgroup:Kubernetes 怎样收敛状态,Linux 怎样调度和限制进程。
- Pod 网络:从 socket 到 Service:一次请求怎样穿过 network namespace、veth、CNI、Service 与节点网络。
- Service 控制面与节点代理:EndpointSlice 怎样产生,节点怎样把 Service 物化为本地转发规则。
- NetworkPolicy:声明访问意图到节点执行:流量允许规则如何选择 Pod、隔离方向,并由 CNI 落到数据面。
- 持久化存储:PVC 到 Linux VFS:声明、调度、CSI、挂载与真实写入如何接成一条链。
- 可观测性:从事件到可验证证据:日志、指标、trace、Event 与内核 trace 各自的职责和关联方式。
- 扩展与兼容:稳定契约如何承载演进:Linux UAPI 与 Kubernetes CRD、controller、版本化 API 的设计边界。
- 源码阅读:从行为问题追到架构边界:用 Linux 与 Kubernetes 的真实入口建立可复用的阅读方法。
- 源码实证:Deployment controller 如何收敛:固定 Kubernetes v1.31.0,追踪事件、队列、同步与状态分支。
- 源码实证:Linux
openat()如何穿过 VFS:固定 Linux v6.10,追踪 fd、路径遍历、权限与文件系统分派。