00 首页
Kubernetes 架构图解
Kubernetes 把期望状态保存为 API 对象,多个控制循环持续推动实际状态靠近它。控制面决定与记录,节点负责运行容器;应用数据包通常不经过 API server。
版本:Kubernetes v1.37.2;核实日期:2026-11-12。官方在线文档可能继续更新,源码链接固定到对应发布标签。图为原理抽象,省略非本页重点。
从边界到模块
specification {
element actor { style { shape person; color amber } }
element system { style { color muted } }
element component { style { color primary } }
element storage { style { shape storage; color green } }
}
model {
user = actor '用户 / kubectl'
traffic = actor '业务客户端'
app = system 'Kubernetes 集群' {
api = component 'kube-apiserver'
etcd = storage 'etcd'
scheduler = component 'kube-scheduler'
controller = component 'kube-controller-manager'
kubelet = component '节点 kubelet'
runtime = component '容器运行时 / CNI'
proxy = component 'Service 数据面'
pod = component '业务 Pod'
}
user -> app.api '声明与查询对象'
app.api -> app.etcd '持久化 API 数据'
app.scheduler -> app.api '观察未调度 Pod / 写绑定'
app.controller -> app.api '观察与调和'
app.kubelet -> app.api '观察绑定 / 回报状态'
app.kubelet -> app.runtime 'CRI 生命周期管理'
app.runtime -> app.pod '创建容器与网络'
traffic -> app.proxy 'Service 地址访问'
app.proxy -> app.pod '转发至后端'
}
views {
view index {
title '01 · 系统边界'
include user, traffic, app
autoLayout LeftRight
}
view modules of app {
title '02 · 模块与数据流'
include app.*, user, traffic
autoLayout LeftRight
}
}
阅读方法
先看“系统边界”,再切换“模块与数据流”或从系统节点进入下钻视图。箭头表示交互或数据流,不代表全部为同步调用;每条核心链路页提供独立可读的时序图。可在图中缩放、平移和切换视图。
四条核心链路
- 控制平面总览:API server 是对象入口,etcd 是持久存储;调度器与控制器通过 API 协作,不直接修改 etcd。
- 创建 Pod 的全链路:直接创建 Pod 后,调度器为它选节点,节点 kubelet 再驱动运行时落地;API 返回成功与 Ready 之间还有多段工作。
- Service 网络转发:Service 把稳定的访问地址映射到变化的 EndpointSlice;节点数据面执行转发,控制面只负责下发规则所需的对象。
- 控制器调和循环:控制器反复比较期望与实际状态,按对象 key 入队再执行幂等调和;事件会合并,可靠性来自重新观察。