MutatingAdmissionWebhook
是一款系統內置且默認啟用的準入控制器插件,它在kube-apiserver
審查請求(Mutating admission)階段被調用,用于審查請求。
與其他準備控制器插件不同的是,MutatingAdmissionWebhook
本身并不直接審查請求,而是將任務轉發給相應的webhook
(多個webhook
串行調用),如果任何一個webhook
返回失敗,MutatingAdmissionWebhook
將會立即拒絕請求。MutatingAdmissionWebhook
與webhook
的關系如下圖所示:
webhook
通常是一個專門負責審查資源對象的web服務,webhook
根據是否會修改請求分為Mutating
(修改型)和Validating
(校驗型)兩類。MutatingAdmissionWebhook
負責管理并調用Mutating
類型的webhook
,該類型webhook
通過MutatingWebhookConfiguration
對象注冊到系統中,MutatingWebhookConfiguration
對象中描述了webhook
的服務地址、關心的資源對象類型等信息。MutatingAdmissionWebhook
正是根據MutatingWebhookConfiguration
對象來獲取webhook
列表,并在API 請求來到時篩選并調用webhook
。關于MutatingWebhookConfiguration
對象的更多信息將在后續章節展開介紹。
MutatingAdmissionWebhook
是Kubernetes
一個重要擴展機制,常用于對擴展的CRD
(CustomResourceDefination)對象進行審查和改寫,當然它也可以用于Kubernetes
原生資源對象,比如當Pod
創建時自動添加label
。