Kubernetes 架构原则与对象设计专栏导览
专栏定位
本专栏是 Kubernetes 系列的总纲——在深入任何具体组件之前,先建立对 K8s 整体架构的系统性认知。K8s 不是一堆组件的简单堆砌,它的每一个设计决策背后都有清晰的架构原则:声明式 API、控制器模式、面向终态的协调、Level-triggered 而非 Edge-triggered。理解这些原则,你才能理解”K8s 为什么这样设计”而不仅仅是”K8s 怎么用”。
本专栏同时深入 K8s 的对象模型——Pod、Deployment、Service、ConfigMap 等不是孤立的概念,它们共享一套统一的 API 对象框架(GVR/GVK、metadata/spec/status 三段式、Label/Selector 松耦合关联)。掌握这套框架后,遇到任何 K8s 资源都能快速理解其设计意图。
前置知识:容器核心原理专栏(Namespace、Cgroups、UnionFS、容器网络、OCI 标准)。
目录
| 序号 | 文章 | 核心内容 |
|---|---|---|
| 01 | 01 Kubernetes 的诞生与设计哲学 | 从 Borg 到 K8s 的演进、K8s 解决的核心问题、声明式 vs 命令式、面向终态、控制器模式、Level-triggered 设计 |
| 02 | 02 Kubernetes 整体架构 | 控制平面(API Server / etcd / Scheduler / Controller Manager)与数据平面(kubelet / kube-proxy / 容器运行时)、组件交互流程、一个 Pod 从创建到运行的完整链路 |
| 03 | 03 API 对象模型与 GVR 体系 | API 对象的统一结构(TypeMeta / ObjectMeta / Spec / Status)、Group-Version-Resource(GVR)与 Group-Version-Kind(GVK)、API 版本演进(alpha/beta/stable)、CRD 扩展机制 |
| 04 | 04 Label Selector 与松耦合设计 | Label 与 Annotation 的语义差异、Selector 的匹配机制(等式/集合)、Label 如何实现 Deployment→ReplicaSet→Pod 的级联关联、OwnerReference 与垃圾回收 |
| 05 | 05 核心工作负载对象深度解析 | Pod 的设计哲学(为什么不是容器而是 Pod)、Deployment / StatefulSet / DaemonSet / Job 的设计动机与适用场景、控制器如何管理这些对象 |
| 06 | 06 etcd 与 Kubernetes 的状态存储 | etcd 的 Raft 共识、Watch 机制、MVCC 版本控制、K8s 如何使用 etcd(ResourceVersion / List-Watch 协议)、etcd 的运维与容量规划 |
推荐阅读路径
- 快速建立全局认知:01 → 02
- 深入 API 设计:03 → 04 → 05
- 理解状态存储:02 → 06
与其他专栏的关系
| 后续专栏 | 本专栏提供的基础 |
|---|---|
| API Server 专栏 | API 对象模型(GVR/GVK)、etcd 存储 |
| 控制器和调度器专栏 | 控制器模式、声明式协调、工作负载对象 |
| 生命周期管理和服务发现专栏 | Pod 设计哲学、Label/Selector |
| 生产实践与集群管理专栏 | 整体架构、组件职责 |
关联专栏
- Docker:容器内核基础(Namespace/CGroups/UnionFS)
- API Server:API 对象模型、etcd 存储
- 控制器和调度器:控制器模式、声明式协调
- etcd:K8s 的唯一持久化存储
- YARN:K8s vs YARN 资源调度对比