其他分享
首页 > 其他分享> > kubernetes 准入控制器(admission controller)

kubernetes 准入控制器(admission controller)

作者:互联网

准入控制器(Admission Controller)

准入控制器(Admission Controller)位于 API Server 中,在对象被持久化之前,准入控制器拦截对 API Server 的请求,一般用来做身份验证和授权。其中包含两个特殊的控制器:MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook。分别作为配置的变异和验证准入控制 webhook

变更(Mutating)准入控制:修改请求的对象

验证(Validating)准入控制:验证请求的对象

准入控制器是在 API Server 的启动参数重配置的。一个准入控制器可能属于以上两者中的一种,也可能两者都属于。当请求到达 API Server 的时候首先执行变更准入控制,然后再执行验证准入控制。

我们在部署 Kubernetes 集群的时候都会默认开启一系列准入控制器,如果没有设置这些准入控制器的话可以说你的 Kubernetes 集群就是在裸奔,应该只有集群管理员可以修改集群的准入控制器。

例如我会默认开启如下的准入控制器。

--admission-control=ServiceAccount,NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota,MutatingAdmissionWebhook,ValidatingAdmissionWebhook

 

准入控制器列表

Kubernetes 目前支持的准入控制器有:

推荐配置

Kubernetes 1.10+

对于Kubernetes 1.10及更高版本,我们建议使用--enable-admission-plugins标志运行以下一组准入控制器(顺序无关紧要)。

注意: --admission-control在1.10中已弃用并替换为--enable-admission-plugins

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota

 

对于Kubernetes 1.9及更早版本,我们建议使用--admission-control标志(顺序有关)运行以下一组许可控制器。

Kubernetes 1.9

--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota

 

值得重申的是,在1.9中,这些发生在变更阶段和验证阶段,并且例如ResourceQuota在验证阶段运行,因此是运行的最后一个准入控制器。 MutatingAdmissionWebhook在此列表中出现在它之前,因为它在变更阶段运行。

对于早期版本,没有验证准入控制器和变更准入控制器的概念,并且准入控制器以指定的确切顺序运行。

Kubernetes 1.6 - 1.8

--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds

 

 

标签:控制器,请求,kubernetes,admission,controller,准入,ResourceQuota,Kubernetes
来源: https://www.cnblogs.com/peteremperor/p/12202516.html