从一次 Webhook 拖垮集群聊起:彻底搞懂 K8s 架构设计

一个 MutatingAdmissionWebhook 后端挂掉导致整个集群’假死’,排查过程串联起 K8s 所有核心组件的职责与协作:API Server 的请求处理链、etcd 的唯一真相源角色、Controller Manager 的 Reconcile 循环、Scheduler 的选房策略、Kubelet 的工地执行、kube-proxy 的网络粘合。

April 24, 2026 · 15 min · Zhao Xue

从一次 K8s Controller OOM 聊起:彻底搞懂 Go GMP 调度模型

不讲干巴巴的八股文。从一个真实的 Kubernetes controller 内存暴涨 + 延迟飙高的线上事故出发,用 pprof 数据倒推 GMP 调度模型的每个概念,让你理解为什么要学这些东西。

April 18, 2026 · 5 min · Zhao Xue

从一次 K8s Operator 资源配置错乱聊起:彻底搞懂 Go Slice 底层原理

一个 K8s Operator 里 slice append 导致不同调用方的资源配置互相污染,排查过程揭开 slice 底层结构的全部秘密:胖指针、共享底层数组、扩容策略、nil vs 空 slice,以及那些年我们踩过的坑。

April 18, 2026 · 8 min · Zhao Xue

从一次 Reconcile 风暴聊起:彻底搞懂 K8s Controller 和 Operator 模式

200+ 集群同时断连后重连,固定 RequeueAfter 绕过指数退避导致 API Server 雪崩。排查过程揭开 Controller 核心机制的全部秘密:Informer 的 List-Watch、DeltaFIFO、Indexer 缓存、WorkQueue 限速策略,以及 Operator 模式的工程哲学。

April 24, 2026 · 8 min · Zhao Xue

从一次 K8s Controller 线上 Fatal 聊起:Go Map 的并发陷阱与实战方案

生产环境的 K8s controller 突然 fatal error: concurrent map read and map write 崩溃退出,不是 panic,recover 也救不了。从这个事故出发,搞清楚 map 的并发问题、遍历随机性、delete 不缩容等实战中真正会踩的坑。

April 18, 2026 · 3 min · Zhao Xue

从一次 K8s Webhook 超时聊起:彻底搞懂 Go Channel 底层原理

一个 K8s admission webhook 在高峰期频繁超时,但单个请求处理逻辑明明很快。问题出在 channel 的使用方式上。从这个事故出发,拆解 channel 的底层结构、发送接收流程、select 实现,以及那些年我们踩过的 channel 坑。

April 18, 2026 · 6 min · Zhao Xue

从一次 CR 删不掉聊起:彻底搞懂 CRD、Finalizer 和 Webhook

kubectl delete 某个 CR 后一直卡在 Terminating,–force 也无效。排查过程串联 CRD 的设计哲学:自定义资源如何在 API Server 中’活起来’、Finalizer 如何保证安全清理、Webhook 如何扩展准入控制,以及那些让人抓狂的版本迁移坑。

April 24, 2026 · 13 min · Zhao Xue

从一次 K8s Webhook 的诡异 error != nil 聊起:Go Interface 的实战陷阱

K8s admission webhook 返回了一个 typed nil pointer,导致 error != nil 却打印不出任何错误信息。搞清楚 nil interface vs typed nil、值接收者 vs 指针接收者、类型断言这些面试必考点。

April 18, 2026 · 3 min · Zhao Xue

从一次 K8s 级联超时聊起:彻底搞懂 Go Context 的传播机制

一个 K8s admission webhook 上线后内存持续增长,pprof 显示大量 timer 泄漏。根因是 context.WithTimeout 的 cancel 函数没有被调用。从这个事故出发,拆解 context 的树状传播机制、四种派生函数、最佳实践与常见陷阱。

April 18, 2026 · 8 min · Zhao Xue

从一次 database space exceeded 聊起:彻底搞懂 etcd 在 K8s 中的角色

管理 200+ 集群时 CR 大量累积触发 etcd space quota,所有写操作报 mvcc: database space exceeded。排查过程揭开 etcd 的全部秘密:Raft 共识如何保证一致性、MVCC 如何实现乐观并发控制、watch 如何驱动整个 K8s 事件循环,以及 compaction 和 defrag 为什么要分两步。

April 24, 2026 · 9 min · Zhao Xue