小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ

> 本文是写作规划,不是可发布正文。拆解对象:kube-apiserver 在 Kubernetes 控制面中的生产内核——以 Kubernetes v1.30.3(源码 tag v1.30.3)为主线,把一次 REST 请求从 HandlerChain → AuthN/AuthZ → Admission → stor…

kube-apiserver / Kubernetes 控制面内核 — 系列规划

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T14:44:17Z

本文介绍Kubernetes控制面内核系列文章,聚焦kube-apiserver与etcd间的存储层。文章指出当前知识缺口,定义五条排障坐标系:Storage/etcd耦合、Watch/cache、Admission、AuthN/AuthZ、流控。版本锚定v1.30.3,提供16篇阅读路线,强调通过分层定位504、410等故障,而非简单直连etcd排查。

【kube-apiserver】控制面全景:缺口、五轴坐标系与 16 篇路线

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文拆解kube-apiserver请求路径,从TLS终止到etcd写入,需经过APF流控、认证、授权、Admission等拦截点。APF在认证前,Admission在REST handler内。请求失败时需区分是Webhook拒绝、APF排队还是etcd问题,不能简单归因于etcd慢。GVR路由将请求映射到对应storage实现。

【kube-apiserver】进程与请求路径:generic apiserver、HandlerChain 与 REST 路由

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

kube-apiserver通过storage.Interface与etcd交互,存储protobuf序列化数据,key由前缀拼接,value经Transformer加密。GuaranteedUpdate用etcd Txn实现乐观并发写,Create/Delete/Watch各有路径。排障需关注etcd延迟、转换失败等指标,区分apiserver与etcd问题。

【kube-apiserver】storage.Interface 与 etcd3:codec、prefix 与 CRUD 路径

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文解析Kubernetes中resourceVersion字段的语义与常见误用。该字段源自etcd的mod_revision,仅对同一对象有单调性,跨对象比较无意义。文章详述了Watch起点、continue token分页机制及一致性保证,指出不同读路径的一致性差异,并解释了410 Gone错误的来源与处理方式。

【kube-apiserver】resourceVersion 与 Revision 映射:mod revision、continue 与一致性读期望

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3中kube-apiserver的watch cache机制,核心是Cacher组件:它通过watchCache环形缓冲存储事件,用Ready门控制启动同步,dispatch实现内存多路分发,bookmark维持资源版本推进。当缓存未命中或未就绪时回退到etcd,可能引发List风暴,需调整缓存容量和bookmark频率优化。

【kube-apiserver】Watch cache / cacher:dispatch、bookmark 与穿透 etcd

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文分析Kubernetes中`kubectl get pods -A`在大集群下变慢的原因,指出常见误判为etcd慢,实际可能是cacher或etcd3的List路径问题。文章详解了`resourceVersion`语义(`rv=""`走etcd强一致,`rv="0"`走缓存)、continue token的编码结构、分页成本模型,以及label selector在etcd侧无索引导致的全量扫描放大问题,并给出优化建议。

【kube-apiserver】List、Pagination 与一致性 List:continue token 与 etcd Range 成本

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3中apiserver的Watch服务端路径,涵盖建立流程、resourceVersion语义(0与具体RV差异)、410 Gone的两大来源(cacher ring buffer滑出窗口或etcd ErrCompacted上浮)及分列方法、timeout与连接生命周期(含bookmark作用),并说明与client-go Informer的边界及WatchList功能现状。

【kube-apiserver】Watch 路径(服务端):长连接、410 Gone 与 timeout

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3中Admission链的机制与排障。请求经AuthN、AuthZ后进入Admission,分Mutating和Validating两阶段,失败即返回错误,不写入etcd。内置插件如NamespaceLifecycle、LimitRanger、ResourceQuota在注册入口装配。Webhook集成有超时和failurePolicy,争议在于fail-open与fail-closed的可用性/安全性权衡。排障时需区分Admission轴与存储问题。

【kube-apiserver】Admission 链概览:内置插件顺序与 webhook 边界

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3中Admission Webhook的生产配置与故障排查。核心要点:Mutating Webhook串行执行可修改对象,Validating Webhook并行执行仅校验;timeoutSeconds默认10秒,failurePolicy决定超时后拒绝或放行;生产需配置副本、namespaceSelector避免自锁,并确保幂等性。CEL ValidatingAdmissionPolicy作为无外部依赖的替代方案,适合纯校验场景。排障时关注webhook延迟指标,而非etcd。

【kube-apiserver】Mutating / Validating Webhook:timeout、failurePolicy 与可用性门

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3中kube-apiserver的认证链结构,涵盖X509证书、SA token、静态Bearer、Bootstrap、OIDC及Webhook等认证器边界。文章区分401(认证失败)、403(授权失败)、503(存储或Webhook故障)等错误码,并讨论SA token过期、OIDC JWKS缓存等排障要点,强调认证与授权职责分离。

【kube-apiserver】Authentication:SA、Bearer、OIDC 边界

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30.3的授权与审计机制。授权链依次为Node、RBAC、Webhook Authorizer,任一允许即放行,否则返回403。RBAC为纯Allow模型,无显式Deny规则。SAR/SSAR接口用于权限检查。Audit分四级记录请求,403仅来自K8s授权链,非etcd权限。排障需查Audit日志和status.reason。

【kube-apiserver】Authorization 与 Audit:RBAC、SAR 与 403 分列

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes v1.30中kube-apiserver的过载保护机制,包括旧的max-in-flight全局并发限制和新的API Priority and Fairness(APF)公平排队系统。APF通过FlowSchema和PriorityLevel配置,使用SFVR算法实现流量分类和公平调度。文章详细区分429、504等超载症状的排查路径,强调先检查APF等待指标,再排查etcd或Webhook,并提供默认配置和调参建议。

【kube-apiserver】APF 与 max-in-flight:公平排队、504 与 etcd lag 分列

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍Kubernetes中两条API扩展路径:CRD v1和Aggregated API。CRD请求在apiserver内部处理,存储于etcd,可能涉及conversion webhook;Aggregated API则代理到外部Extension Server。文章详述各自失败模式、排障方法,并明确边界:CRD codegen、scheduler/controller、kubelet等不在讨论范围。

【kube-apiserver】CRD / aggregation / 扩展边界:API 扩展停损线

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

kube-apiserver无leader选举,多实例并发运行共享etcd,与controller-manager等不同。运维要点包括:滚动升级逐实例替换、处理409冲突、APF容量为各实例之和。核心flag有--etcd-servers、--etcd-servers-overrides(分集群events)、--request-timeout、--shutdown-delay-duration(需≥LB健康检查间隔×失败阈值)、--encryption-provider-config。升级顺序:etcd→apiserver→controller-manager→scheduler→kubelet,版本偏差不超过2个minor。健康检查中/readyz反映etcd连通性,/healthz不等价于etcd健康。

【kube-apiserver】运维与升级:HA、flags、graceful shutdown 与 etcd 联检

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍kube-apiserver排障方法,提出五轴坐标系:Storage/etcd、Watch/cache、Admission、Auth、APF。通过症状映射表快速定位问题轴,如401/403查Auth,503查Admission,504查APF,410查Watch。强调先定轴再下钻,避免误操作,并列出关键metrics和命令,区分apiserver与etcd问题,指导高效排障。

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

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文总结kube-apiserver排障系列终章,提出机制排除树,按症状(401/403、webhook 503、APF 429、etcd延迟、Watch错误等)定位至Auth、Admission、APF、Storage或Watch轴。回收etcd系列停损线,明确Kine SQL后端Watch语义差异及events分集群边界。列出三个开放问题(watch cache SLO、线性读一致性、Lease fencing),强调以实测关闭,并给出ADR友好收束建议。

【kube-apiserver】选型收束与开放问题:排除树、Kine 与 events 分集群

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文介绍kube-apiserver生产内核系列,聚焦控制面故障排障,以Storage/Watch/Admission/Auth/APF五轴为坐标系,规划16篇阅读路线。内容涵盖请求路径、watch cache、resourceVersion、Webhook、APF等机制,版本锚定Kubernetes v1.30.3,旨在帮助SRE归因504、410等错误,区分直连etcd与apiserver排障边界。

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

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-28T00:00:00Z

本文讨论Kubernetes控制面与etcd的耦合关系。kube-apiserver是唯一直接连接etcd的组件,通过watch cache合并客户端请求。resourceVersion对应etcd的mod revision,用于乐观并发控制。Node Lease通过etcd Lease机制实现心跳,减少写入放大。排障时需区分apiserver超时与etcd五轴问题,避免误判。

【etcd】Kubernetes 控制面耦合:apiserver、resourceVersion 与 Node Lease

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-26T00:00:00Z
周报 #72 - 滑板体验、Rust Conf 与 Follow 公测(含邀请码)

作者记录了2024年9月3日至9月8日期间的生活和思考,参加了Rust Conf 2024活动,重构了用Rust编写的Api Server,玩了Lake游戏,体验了滑板课程,并迁移了RSSHub部署。作者分享了个人生活中的趣事和有趣的输入。最后,作者提供了10个Follow应用的邀请码给读者。

周报 #72 - 滑板体验、Rust Conf 与 Follow 公测(含邀请码)

Pseudoyu Pseudoyu · 2024-09-08T08:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 1tok 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator 模力方舟 Gitee AI

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码