标签:obj 字段 容器 权限 rmi ring Kubernete 自身 sep
准入控制器(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 目前支持的准入控制器有:
PersistentVolumeClaim
时不请求任何特定存储类的对象,并自动向其添加默认存储类。这样,用户就不需要关注特殊存储类而获得默认存储类。notready:NoExecute
和unreachable:NoExecute
默认设置为5分钟。exec
和附加命令到以允许访问宿主机的升级了权限运行的pod。requiredDuringSchedulingRequiredDuringExecution
的 AntiAffinity
字段中定义除了kubernetes.io/hostname
之外的拓扑关键字的 pod 。LimitRange
。Namespace
其自身之外的命名空间资源上的所有请求。如果请求引用的命名空间不存在,则拒绝该请求。Namespace
拒绝不存在的请求。此准入控制器还防止缺失三个系统保留的命名空间default
、kube-system
、kube-public
。Node
和Pod
对象。metadata.ownerReferences
对象的访问,以便只有对该对象具有“删除”权限的用户才能对其进行更改。priorityClassName
字段并填充优先级的整数值。如果未找到优先级,则拒绝Pod。ResourceQuota
对象中列举的任何约束。StorageObjectInUseProtection
插件将kubernetes.io/pvc-protection
或kubernetes.io/pv-protection
终结器添加到新创建的持久卷声明(PVC)或持久卷(PV)。在用户删除PVC或PV的情况下,PVC或PV不会被移除,直到PVC或PV保护控制器从PVC或PV中移除终结器。有关更多详细信息,请参阅使用中的存储对象保护。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)
标签:obj 字段 容器 权限 rmi ring Kubernete 自身 sep
原文地址:https://www.cnblogs.com/peteremperor/p/12202516.html