admission-controllers
WebHook是什么
官方文档: https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/admission-controllers/
WebHook与过滤器的作用类似,任何对CRD进行变更的操作都会交由WebHook提前处理,处理完后,才会转给Controller继续处理,WebHook流程图如下:
WebHook有两个特殊的控制器:
(1)修改(MutatingAdmissionWebhook): 对CRD进行修改,如为资源自动打标签等。
(2)验证(ValidatingAdmissionWebhook): 对CRD进行验证,如判断该字段的设定是否在取值范围内。
具体说明如下:
(1)APIServer接收到API请求
(2)请求经过认证、鉴权
(3)执行MutaingAdmission的WebHook List。
(4)对请求对象的Schema进行校验。
(5)执行ValidatingAdmission的WebHook List。
(6)最后写入ETCD。
案例
示例:https://github.com/0x00d0/k8s-webhook-example