Kubernetes Admission Controller如何处理多并发准入请求?
Admission Controller 请求处理逻辑答疑
前提约束
我们基于「仅运行单个Admission Controller Pod、且已配置Pod删除事件触发的Webhook」的假设展开回答。
示例场景答复
你提到的场景下两个删除请求会并行处理,不需要严格按先后顺序执行。
API Server本身是高并发设计,收到Alice和Bob两个独立的删除请求后,会同时触发Webhook调用,向你的Admission Controller Pod发起两个独立的HTTP请求。只要你的Admission Controller没有自己写强制串行的特殊逻辑,单实例也会通过自身的多协程/多线程服务模型同时处理这两个请求,不会排队串行执行。
通用场景答复
- 多个准入请求同时发往Admission Controller是非常常见的情况:只要API Server收到的资源操作命中了Webhook触发规则,就会并发发起调用,不会主动把请求串行化之后再发送给控制器。
- 绝大多数Admission Controller默认都支持并行处理:不管是K8s生态的官方控制器,还是基于官方SDK开发的自定义控制器,底层都是多协程/多线程的HTTP服务,默认会并行处理收到的请求,没有特殊定制的话不会把请求入队串行处理。只有当控制器的并发处理上限被打满时,新进来的请求才会临时排队等待。
内容的提问来源于stack exchange,提问作者jtee
相关产品推荐
相关产品推荐

