k8s–基础–23.4–认证-授权-准入控制–准入控制


1、介绍

Kubernetes的Admission Control实际上是一个准入控制器(Admission Controller)插件列表,发送到APIServer的请求都需要经过这个列表中的每个准入控制器插件的检查,如果某一个控制器插件准入失败,就准入失败。

2、控制器插件

2.1、AlwaysAdmit

允许所有请求通过

2.2、AlwaysPullImages

在启动容器之前总是去下载镜像,相当于每当容器启动前做一次用于是否有权使用该容器镜像的检查

2.3、AlwaysDeny

禁止所有请求通过,用于测试

2.4、DenyEscalatingExec

  1. 拒绝exec和attach命令到有升级特权的Pod的终端用户访问。
  2. 如果集群中包含升级特权的容器,而要限制终端用户在这些容器中执行命令的能力,推荐使用此插件

2.5、ImagePolicyWebhook

2.6、ServiceAccount

  1. 这个插件实现了serviceAccounts等等自动化
  2. 如果使用ServiceAccount对象,强烈推荐使用这个插件

2.7、SecurityContextDeny

  1. 将Pod定义中定义了的SecurityContext选项全部失效。
  2. SecurityContext包含在容器中定义了操作系统级别的安全选型如fsGroup,selinux等选项

2.8、ResourceQuota

  1. 用于namespace上的配额管理,它会观察进入的请求,确保在namespace上的配额不超标。
  2. 推荐将这个插件放到准入控制器列表的最后一个。
  3. 可以限制某个namespace中创建资源的数量
  4. 可以限制某个namespace中被Pod请求的资源总量
  5. ResourceQuota准入控制器和ResourceQuota资源对象一起可以实现资源配额管理。

2.9、LimitRanger

  1. 用于Pod和容器上的配额管理,它会观察进入的请求,确保Pod和容器上的配额不会超标。
  2. 准入控制器LimitRanger和资源对象LimitRange一起实现资源限制管理

2.10、NamespaceLifecycle

  1. 当一个请求是在一个不存在的namespace下创建资源对象时,该请求会被拒绝。
  2. 当删除一个namespace时,将会删除该namespace下的所有资源对象

2.11、DefaultStorageClass

2.12、DefaultTolerationSeconds

2.13、PodSecurityPolicy

3、官方推荐使用这些插件

  1. admission-control=NamespaceLifecycle
  2. LimitRanger
  3. ServiceAccount
  4. PersistentVolumeLabel
  5. DefaultStorageClass
  6. ResourceQuota
  7. DefaultTolerationSeconds
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐