土法炼钢 · 系统与基础设施

kube-apiserver / Kubernetes 控制面内核:storage、cacher、Admission 与 APF

文章导航

分类入口
kubernetesdistributed
标签入口
#kubernetes#apiserver#control-plane#storage#watch-cache#admission#apf#resourceversion#v1.30.3

目录

etcd / 生产内核 已把 单 Raft 组 → WAL/MVCC → Watch/Lease 钉到五轴排障;etcd/13 钉过 apiserver↔︎etcd 分层、resourceVersion 与 Node Lease,但写明 apiserver 实现全书不在此展开分布式系统百科 · etcdKubernetes 网络 分别覆盖协调层百科与 Pod 数据面。中间仍缺一层:一次 Create/Update 卡在 Admission 还是 storage.Interface、504 是 APF 排队还是 etcd ReadIndex、410 Gone 是 cacher bookmark 还是 etcd ErrCompacted、Webhook 503 与 storage 超时如何分列,以及何时不该直连 etcd 排障 apiserver。

本系列回答:kube-apiserver 生产路径里 REST 请求失败落在哪一层,watch cache 相对 etcd 直读换来了什么排障坐标,以及控制面 504 如何与 etcd 五轴分列。

写:

不写:Helm 安装全书、scheduler/controller/kubelet 内核重讲、CRD codegen 全书、CNI/mesh 数据面、未实测 P99 排行。不把 apiserver 写成透明 etcd 代理。 持久化层见 etcd/;Pod 网络见 k8s-network/cilium/

系列状态:01–16 已发布(2026-08-28)。 规划见 PLAN.md。机制结论钉源码 tag v1.30.3(Kubernetes v1.30.3),不以 kubernetes.io/docs/ 最新版冒充该版本。etcd 后端对照钉 etcd v3.5.33。无真实 K8s 集群则不粘贴伪造 kubectl 输出 / apiserver metrics。实验台账未跑。

版本锚定:Kubernetes v1.30.3(源码 tag v1.30.3;与 istio-xds 对照锚一致)。etcd 后端常见为 3.5.x——存储耦合机制以 v1.30.3 apiserver 源码为准,etcd 侧五轴见 etcd 系列。

适合谁看

与已有系列的分工

维度 etcd/ / etcd/13 本系列
定位 持久化层五轴;K8s 耦合边界 apiserver 生产内核 + 504 分列
深度 Raft→MVCC→Watch;apiserver 指针 storage→cacher→admission→APF 链
对照 TiKV/FDB 选型 直连 etcd vs apiserver 排障;Kine 边界
症状 / 问题 去看
no leader / quota / ErrCompacted / Lease TTL etcd/15
Raft / MVCC / bbolt / etcd Watch etcd/
xDS / istiod / mesh istio-xds/
CNI / Pod 网络 / Service k8s-network/cilium/
504 / 410 / webhook 慢 / APF 排队 / rv 落后 本系列 15
该不该直连 etcd 排障 apiserver 本系列 16

读法:只要「只有 apiserver 连 etcd」→ etcd/13 足够;要「storage vs cacher vs admission vs APF 分列、504 归因」→ 本系列 01 → 03 → 05 → 12 → 15。

一、这个领域最值得关注的 5 个问题

  1. 一次 Create/Update/Patch 从 REST 到 etcd,失败落在哪一层? → 第 2–4、8–9、15 篇。
  2. resourceVersion、bookmark、410 与 etcd ErrCompacted 如何分列? → 第 4–7、15 篇。
  3. watch cache 如何改变 etcd 负载?List 风暴从哪触发? → 第 5–7、15 篇。
  4. Webhook 慢、APF 排队、504 与 etcd 指标如何分列? → 第 9、12、15 篇。
  5. 何时查 etcd 系列、何时查 apiserver?Kine/events 分集群边界? → 第 16 篇。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  overview["01 Overview"] --> reqpath["02 Request Path"]
  reqpath --> storage["03 storage etcd3"]
  storage --> rv["04 resourceVersion"]
  rv --> cacher["05 Watch Cache"]
  cacher --> list["06 List Pagination"]
  list --> watch["07 Watch Server"]
  watch --> adm["08 Admission"]
  adm --> webhook["09 Webhooks"]
  webhook --> authn["10 Authentication"]
  authn --> authz["11 AuthZ Audit"]
  authz --> apf["12 APF"]
  apf --> ext["13 CRD Boundary"]
  ext --> ops["14 Ops Upgrade"]
  ops --> trouble["15 Troubleshoot"]
  trouble --> select["16 Selection"]
  overview --> select
路径 篇目 适合
必读核心 1 → 3 → 5 → 12 → 15 快速建立五轴
504 归因 1 → 5 → 9 → 12 → 15 apiserver 超时分列
读写与 Watch 4 → 6 → 7 → 15 410 / List 风暴
安全与准入 8 → 10 → 11 403/503 分列
完整通读 1 → … → 16 系统掌握

三、目录与每篇价值点

第一部分:模型与存储(01–05)

  1. 控制面全景
    • 相对 etcd/13、distributed/50 的缺口;五轴与 16 篇路线。
  2. apiserver 进程与请求路径
    • generic apiserver、HandlerChain、REST 路由。
  3. storage.Interface 与 etcd3
    • codec、prefix、CRUD/Watch 到 etcd。
  4. resourceVersion 与 Revision 映射
    • mod revision、continue、一致性读期望。
  5. Watch cache / cacher 架构
    • dispatch、bookmark、cache miss 穿透。

第二部分:读写、准入与身份(06–11)

  1. List / Pagination / 一致性 List
    • continue token、etcd Range 成本。
  2. Watch 路径(服务端视角)
    • 长连接、410/timeout。
  3. Admission 链概览
    • 准入顺序、插件与 webhook 边界。
  4. Mutating / Validating Webhook
    • timeout、failurePolicy。
  5. Authentication
    • SA、Bearer、OIDC 边界。
  6. Authorization 与 Audit
    • RBAC、SAR、audit 分列。

第三部分:流控、运维与收束(12–16)

  1. APF 与 max-in-flight
    • 公平排队、504 与 etcd lag 分列。
  2. CRD / aggregation / 扩展边界
    • API 扩展停损线。
  3. 运维与升级
    • HA、flags、与 etcd 联检。
  4. 排障五轴
    • Storage/Watch/Admission/Auth/APF 口令表。
  5. 选型收束与开放问题
    • 排除树;回收 etcd/13 apiserver 停损线。

参考

返回 全部系列索引

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-08-28 · kubernetes / distributed

【kube-apiserver】排障五轴:Storage、Watch、Admission、Auth、APF

按 Storage/Watch/Admission/Auth/APF 五轴做症状否证;给出完整五轴命令表与症状→轴映射(504、410、401、403、webhook 超时、List 风暴、OOM);说明 apiserver_request_duration_seconds 等核心 metrics 语义;并提供决策树:何时穿透到 etcd/15,何时留在 apiserver 轴。


By .