【kube-apiserver】控制面全景:缺口、五轴坐标系与 16 篇路线
相对 etcd/13、distributed/50、k8s-network 补齐 kube-apiserver 生产内核缺口;以 Storage/Watch/Admission/Auth/APF 五轴为坐标系定义 16 篇阅读路线;版本锚定 Kubernetes v1.30.3。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 31 篇文章 · 返回首页
相对 etcd/13、distributed/50、k8s-network 补齐 kube-apiserver 生产内核缺口;以 Storage/Watch/Admission/Auth/APF 五轴为坐标系定义 16 篇阅读路线;版本锚定 Kubernetes v1.30.3。
拆解 kube-apiserver 进程模型与 generic apiserver 框架;钉 HandlerChain 各插槽顺序与失败落点;说明 GVR 路由机制与请求在到达 storage 前可能被拦截的位置。版本锚定 Kubernetes v1.30.3。
拆解 kube-apiserver 的 storage.Interface 契约与 etcd3 实现:codec 序列化、pathPrefix/resourcePrefix、value.Transformer 加密边界、GuaranteedUpdate 乐观并发,以及 Watch 到 etcd3 的完整路径。版本锚定 Kubernetes v1.30.3 / etcd v3.5.33。
钉 Kubernetes resourceVersion 字段与 etcd mod revision 的对应关系;分析 continue token 的分页语义与成本;说明不同 List 路径的一致性期望差异;以及 410 Gone 与 ErrCompacted 的分列。版本锚定 Kubernetes v1.30.3 / etcd v3.5.33。
钉 Kubernetes v1.30.3 cacher 对 storage.Interface 的包装:watchCache 滑动窗口与 Ready 门、bookmark 推送路径、cache miss 打穿 etcd 的触发条件,以及 List 风暴成因与 watch cache SLO 与 compaction 间隔之间的开放问题。
钉 Kubernetes v1.30.3 List 分页的 continue token 编码语义、limit+continue 多轮 etcd Range 行为、resourceVersion 对一致性语义的影响,以及 label/field selector 在 cacher 与 etcd3 路径上的不同成本。
钉 Kubernetes v1.30.3 服务端 Watch 路径:从 REST handler 到 cacher/etcd3 watcher 的建立过程、resourceVersion=0 与具体 RV 的语义差异、410 Gone 与 etcd ErrCompacted 的映射、bookmark 推送与连接生命周期,以及与 client-go Informer 的边界。
钉 Kubernetes v1.30.3 Admission 链的阶段位置、Mutating 与 Validating 两阶段顺序、内置插件注册路径与典型示例、webhook 边界与 timeout 语义,以及 fail-open vs fail-closed 的工程争议。
钉 K8s v1.30.3 的 MutatingWebhookConfiguration / ValidatingWebhookConfiguration v1:timeoutSeconds、failurePolicy、sideEffects、reinvocationPolicy 字段语义;webhook 慢如何表现为写路径延迟而非 etcd lag;生产可用性门选取;CEL ValidatingAdmissionPolicy 作为内置替代路径;排障证据包。
钉 K8s v1.30.3 的认证链:X509、SA token(bound token)、Bearer、OIDC、Webhook token、匿名用户;ServiceAccount bound token 与 TokenRequest 语义;apiserver 认证 flags 边界;401 与存储层故障的分列;AuthZ 路径见第 11 篇。
钉 K8s v1.30.3 的授权链:RBAC、Node、Webhook、ABAC(遗留);SubjectAccessReview / SelfSubjectAccessReview 用法;Audit policy 四级;403 与 etcd 权限错误、Admission 拒绝的分列;不把 etcd 的 mTLS 错误写成 K8s RBAC 故障。
钉 K8s v1.30.3 的 API Priority and Fairness(APF):FlowSchema 匹配、PriorityLevelConfiguration 公平排队(SFVR)、与旧 max-in-flight flag 的共存关系;429/timeout/504 在 APF 排队、etcd_request_duration_seconds、Admission Webhook 三轴的分列;pkg/util/flowcontrol 路径;APF 与简单 max-in-flight 的运维复杂度争论。
厘清 CRD v1 与 Aggregated API 两条扩展路径在 kube-apiserver 中的存储与请求分界:CRD 对象存 etcd、conversion webhook 失败如何体现在 Storage 轴,APIService 则把请求转发到外部 Extension Server 可引发 503。明确 scheduler/controller/kubelet 为扩展停损线之外的数据面与控制循环。
kube-apiserver 高可用模式:多实例共享 etcd、无需内部 leader election;核心 flag 语义(--etcd-servers、--etcd-servers-overrides、--shutdown-delay-duration、encryption-provider-config);与 etcd/14 的联合升级检查单;Kubernetes 版本偏差策略与 etcd 矩阵指针。
按 Storage/Watch/Admission/Auth/APF 五轴做症状否证;给出完整五轴命令表与症状→轴映射(504、410、401、403、webhook 超时、List 风暴、OOM);说明 apiserver_request_duration_seconds 等核心 metrics 语义;并提供决策树:何时穿透到 etcd/15,何时留在 apiserver 轴。
用机制排除树收束何时查 apiserver 轴、何时穿透 etcd 轴、何时两轴联查;回收 etcd/13 写下的 apiserver 停损线;Kine SQL backend 的 Watch 语义差与 Jepsen 覆盖空白;events --etcd-servers-overrides 分集群运维;列出 watch cache SLO 联合模型、线性读期望与 Lease+fencing 全链路三个开放问题;以 ADR 语言关闭系列边界。
补齐 etcd 系列 K8s 耦合篇之上的 kube-apiserver 生产内核:storage.Interface、watch cache、resourceVersion、Admission/Webhook、APF,并以排障与相对 etcd 的分层收束。
深入剖析 etcd 的核心机制:持久化 Watch 与 Revision 追溯、Lease 租约机制、基于 BoltDB 的 MVCC 存储引擎、与 Raft 共识的联动方式,以及在 Kubernetes 中的关键角色。涵盖性能调优策略、容量限制与规模化方案。
钉 kube-apiserver 与 etcd 的分层边界;resourceVersion 如何映射 Revision MVCC;Node Lease 如何落在 Lease 轴;以及 apiserver 超时应如何分列到 Raft/Watch/Quota 五轴。
补齐 distributed 百科单篇之上的 etcd 生产内核:单 Raft 组、WAL/快照、Revision MVCC、bbolt 单写者、Watch/Lease、K8s apiserver 耦合,并以排障与相对 TiKV/FoundationDB 的选型收束。
从 Linux 网络栈的第一个字节到多集群联邦网络的最后一跳——用代码、抓包和内核源码把 Kubernetes 网络讲透
相对 distributed/50、39、13 钉清 etcd 生产内核缺口;定义 Raft/WAL/MVCC/Watch/Lease 五轴排障坐标系,给出 16 篇阅读路线与 K8s 控制面耦合指针。版本锚定 v3.5.33。
日志 Agent 与管道决定数据能否采得上来、送得到、不丢不炸。对比 Fluent Bit、Vector、Logstash、Cribl 的架构与可靠性,给出 K8s DaemonSet、背压处理与带假设的性能对比模型。
拆解 CSI Identity/Controller/Node 服务与 CreateVolume、NodeStageVolume、NodePublishVolume;对照 K8s external-provisioner/attacher/resizer/snapshotter 与 node-driver-registrar;给出 PVC→PV→Pod 挂载调用链与 in-tree→CSI 谱系,并点名规范最小面与 CSI-Addons 争论。
把 Rook 写成 Kubernetes Operator:钉 CephCluster、CephBlockPool、CephFilesystem、CephObjectStore 等核心 CRD 的职责;划清 reconcile 所有权与 rook-ceph 默认命名空间;明确 Rook 不重写 RADOS 内核,并讨论 Operator 边界与 Driver CR 所有权争论。
补齐站内 Ceph RADOS 内核之上的编排层:CSI 规范与 sidecar、Rook Operator/CRD、Ceph-CSI Operator、RBD/CephFS 供给与挂载、VolumeSnapshot 语义差、升级闸门,以及排障与选型收束。
微分段是零信任在网络层的核心机制——从传统 VLAN 的广播域隔离,到 Kubernetes NetworkPolicy 的 IP 级别过滤,再到 Cilium 基于身份的 eBPF 执行和 Istio 的 L7 策略。本文拆解四层微分段技术的实现原理、性能差异和适用场景,以及从'全通'到'全白名单'的策略制定流程。
企业的工作负载已经从数据中心移到了 SaaS 和公有云——Google Workspace、Office 365、Salesforce、GitHub 是新的'内网'。零信任在 SaaS 和云原生环境中的实现方式与传统数据中心完全不同。本文拆解 CASB 的零信任化、SSPM/CSPM 的配置审计和多云 IAM 的最小权限实践。
K8s 网络三条铁律、pause 容器的真实作用、Pod 网络命名空间的创建全过程
5000 个 Service、十万条 iptables 规则、一次更新锁五秒——这就是 kube-proxy 的现实。Cilium 用 eBPF Map 的 O(1) 查找干掉了整条 KUBE-SERVICES 链,顺便把 sidecar 也一起埋了。
Kubernetes 实战笔记:高可用集群部署、Helm 包管理与 Istio 服务网格实践