kubernetes kube-apiserver源码阅读6之准入控制

💡 原文中文,约18300字,阅读约需44分钟。
📝

内容提要

本文介绍了 kube-apiserver 中的准入控制参数初始化和应用参数的过程,以及两个插件的实现:ServiceAccount 和 NamespaceLifecycle。准入控制可以通过 MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 的方式扩展。

🎯

关键要点

  • kube-apiserver 的请求处理链包括认证、鉴权和审计,但不包含准入逻辑。
  • 准入控制的初始化分为参数初始化和应用参数到 Config 对象。
  • AdmissionOptions 对象用于管理准入控制的插件和配置。
  • kube-apiserver 支持多种准入控制插件,最常用的是 ServiceAccount 和 NamespaceLifecycle。
  • ServiceAccount 插件负责为 Pod 设置默认的 ServiceAccount 和相关的 secrets。
  • NamespaceLifecycle 插件阻止删除特定命名空间,如 default、kube-system 和 kube-public。
  • 准入控制通过 MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 的方式进行扩展。
  • Admit 方法用于修改请求,Validate 方法用于校验请求,Admit 总是在 Validate 之前被调用。
➡️

继续阅读