背景
在 k8s中各组件和kube apiserver通信时的认证和鉴权 中提到"NodeRestriction准入插件",实际上它是一个"准入控制器"。
"准入控制器"是一个重要的概念,在istio、apisix、某些安全产品中都有用到。
本文简要记录一下以下内容:
- "准入控制器"是什么
- 怎么开启"准入控制器"
- 从源码浅析"准入控制器"
本文使用的k8s集群是用kubekey搭建,命令是./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1
分析
"准入控制器"是什么?
它有点类似"插件",为apiserver提供了很好的"可扩展性"。
请求apiserver时,通过认证、鉴权后、持久化("api对象"保存到etcd)前,会经过"准入控制器",让它可以做"变更和验证"。
"变更"可以修改"api对象",比如istio用来实现pod注入。"验证"可以用来校验"api对象",比如 校验当前集群是否有足够多的资