Kubernetes 使用准入控制器(Admission Controllers)

准入控制(Admission Control)在授权后对请求做进一步的验证或添加默认参数,在对kubernetes api服务器的请求过程中,先经过认证授权后,执行准入操作,在对目标对象进行操作。这个准入插件代码在apiserver中,而且必须被编译到二进制文件中才能被执行。

在对集群进行请求时,每个准入控制插件都按顺序运行,只有全部插件都通过的请求才会进入系统,如果序列中的任何插件拒绝请求,则整个请求将被拒绝,并返回错误信息。

在某些情况下,为了适用于应用系统的配置,准入逻辑可能会改变目标对象。此外,准入逻辑也会改变请求操作的一部分相关资源。

为什么需要准入控制?

在kubernetes中,一些高级特性正常运行的前提条件为,将一些准入模块处于enable状态。总结下,对于kubernetes apiserver,如果不适当的配置准入控制模块,他就不能称作是一个完整的server,某些功能也不会正常的生效。

如何运行准入控制插件?

在kubernetes apiserver中有一个flag:admission_control,他的值为一串用逗号连接起、有序的准入模块列表,设置后,就可在对象操作前执行一定顺序的准入模块调用。

每个插件都做什么的?

AlwaysAdmit

结束所有的请求。

AlwaysPullImages

该插件修改每个新的Pod,强制pull最新镜像,这在多租户群集中非常有用,以便私有镜像只能由拥有授权凭据的用户使用。

AlwaysDeny

拒绝所有请求,一般用于测试。

DenyExecOnPrivileged(已弃用)

该插件将拦截所有请求。如果pod有一个privileged container,将只执行这个pod中的命令。
如果自己的集群支持privileged container,自己又希望限制用户在这些privileged container上执行命令,那么强烈推荐使用它。

此功能已合并到DenyEscalatingExec中。

DenyEscalatingExec

禁止privileged container的exec和attach操作。

ImagePolicyWebhook

通过webhook决定image策略,需要同时配置--admission-control=ImagePolicyWebhook,配置文件格式如下。

配置文件格式

ImagePolicyWebhook使用admission配置文件--admission-control-config-file为Backend Behavior设置配置选项。该文件可以是json或yaml并具有以下格式:

{
  "imagePolicy": {
     "kubeConfigFile": "path/to/kubeconfig/for/backend",
     "allowTTL": 50,           // time in s to cache approval
     "denyTTL": 50,            // time in s to cache denial
     "retryBackoff": 500,      // time in ms to wait between retries
     "defaultAllow": true      // determines behavior if the webhook backend fails
  }
}

配置文件必须引用一个kubeconfig格式的文件,该文件设置与后端的连接,通过TLS进行通信。

kubeconfig文件的集群字段须指向remote service,users字段须包含returned authorizer。

# clusters refers to the remote service.
clusters:
- name: name-of-remote-imagepolicy-service
  cluster:
    certificate-authority: /path/to/ca.pem    # CA for verifying the remote service.
    server: https://images.example.com/policy # URL of remote service to query. Must use 'https'.

# users refers to the API server's webhook configuration.
users:
- name: name-of-api-server
  user:
    client-certificate: /path/to/cert.pem # cert for the webhook plugin to use
    client-key: /path/to/key.pem          # key matching the cert

其他HTTP配置,请参考kubeconfig文档。

ServiceAccount

该插件将serviceAccounts 实现了自动化。如果打算使用Kubernetes ServiceAccount对象,那么强烈建议使用此插件。

SecurityContextDeny

该插件会将使用了 SecurityContext的pod中定义的选项全部失效 。

ResourceQuota

该插件将会观察传入的所有请求,并确保它不会违反ResourceQuota对象中枚举的任何限制Namespace。如果在Kubernetes Deployment中使用了ResourceQuota对象,则必须使用此插件来约束Container。

更多详细信息,请参阅resourceQuota design docexample of Resource Quota

推荐在Admission Control参数列表中,这个插件排最后一个。

LimitRanger

该插件将会观察传入的所有请求,并确保它不会违反LimitRanger对象中枚举的任何限制Namespace,如果在Kubernetes Deployment中使用了LimitRanger对象,则必须使用此插件。LimitRanger还可使用Apply将default资源请求不指定任何的Pods; 目前LimitRanger对Default Namespace中的所有pod应用要求0.1 CPU

更多详细信息,请参阅limitRange design docexample of Limit Range 。

InitialResources(试验)

根据镜像的历史使用记录,为容器设置默认资源请求和limits。

更多详细信息,参考 InitialResouces proposal

NamespaceLifecycle

该插件确保处于Termination状态的Namespace不再接收新的对象创建请求,并拒绝请求不存在的Namespace。该插件还可以防止删除系统保留的Namespace:default,kube-system,kube-public。

DefaultStorageClass

该插件将观察PersistentVolumeClaim,并自动设置默认的Storage Class。

当没有配置默认Storage Class时,此插件不会执行任何操作。当有多个Storage Class被标记为默认值时,它也将拒绝任何创建,管理员必须重新访问StorageClass对象,并且只标记一个作为默认值。此插件不用于PersistentVolumeClaim的更新,仅用于创建。

更多详细信息,参考persistent volume

DefaultTolerationSeconds

该插件设置Pod的默认forgiveness toleration为5分钟。

PodSecurityPolicy

该插件用于创建和修改pod,使用Pod Security Policies时需要开启。

当 Kubernetes <1.6.0版本时,API服务器需要启用扩展名/ v1beta1 / podsecuritypolicy API扩展组(--runtime-config=extensions/v1beta1/podsecuritypolicy=true)。

更多信息,请参考Pod Security Policy documentation

NodeRestriction

此插件限制kubelet修改Node和Pod对象,这样的kubelets只允许修改绑定到Node的Pod API对象,以后版本可能会增加额外的限制。

限制kubelet仅可访问node、endpoint、pod、service以及secret、configmap、PV和PVC等相关的资源(仅适用于v1.7+)

对于Kubernetes> = 1.6.0 版本,建议运行以下的准入控制插件(需要按顺序进行):

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

对于Kubernetes> = 1.4.0 版本,建议运行以下的准入控制插件(需要按顺序进行):

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

对于Kubernetes> = 1.2.0 版本,建议运行以下的准入控制插件(需要按顺序进行):

--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota

对于Kubernetes> = 1.0.0 版本,建议运行以下的准入控制插件(需要按顺序进行):

--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,PersistentVolumeLabel,ResourceQuota
K8S中文社区微信公众号

译者

蒲公英

我是一朵蒲公英,哗啦啦的飞!

《Kubernetes 使用准入控制器(Admission Controllers)》有57个想法

  1. Pingback: sample keto diet menu
  2. Pingback: clomid schedule
  3. Pingback: tadalafil website
  4. Pingback: ivermectin adult dose
  5. Pingback: ivermectin humans
  6. Pingback: ivermectin 5ml
  7. Pingback: get cialis
  8. Pingback: stromectol covid 19
  9. Pingback: stromectol liquid
  10. Pingback: ivermectin dengue
  11. Pingback: ivermectin uk boots
  12. Pingback: ivermectina en ingles
  13. Pingback: ivermectin 2
  14. Pingback: stromectol 5 mg
  15. Pingback: price of stromectol
  16. Pingback: ivermectin 8000
  17. Pingback: mazhor4sezon
  18. Pingback: ceallias
  19. Pingback: ivermectin human use
  20. Pingback: do-posle-psihologa
  21. Pingback: ivermectin injectable
  22. Pingback: ivermectin nahdi
  23. Pingback: buy propecia 84
  24. t6116 เว็บไซต์ตรง ไม่ผ่านเอเย่นต์เป็นค่ายเกมที่หลายๆคนกำลังหาในการพนันเพื่อจะได้ทำเงินจากเกมสล็อตออนไลน์แต่ในประเทศ pg slot เว็บตรง หายากในประเทศแม้กระนั้นเราเป็นเจ้าเดียว

  25. 5รับ100โปรโมชั่นที่จะได้รับเมื่อฝากเงินเข้าเล่นสล็อตหากคุณกำลังมองหาเว็บที่แจกโปรโมชั่นเยอะที่นี่ตอบโจทย์ที่สุดมีทั้งเครดิตฟรี โบนัสแจกให้สมาชิกทุกท่านได้เลือกสรรเองมีเงื่อนไขในการเข้ารับง่ายๆสมัครสมาชิกเข้าเล่นได้ฟรีทุกวันไม่มีค่าใช้จ่าย

  26. เว็บตรง ไม่มีขั้ต่ำ 1 บาท ก็แตกได้ สล็อตเกมแตกดี ทุกเกม เข้าแจ็คพอตใหญ่ เท่าไหร่ก็ถอนได้ เล่นได้ไม่จำกัด จ่ายเงินไวได้เงินง่าย เกมดีเกมดัง สล็อตรวมทุกค่าย

  27. เว็บตรงไม่มีเอเย่นต์ จ่ายตรงจากเว็บ สล็อตค่ายใหญ่ ทำเงินได้ไม่อั้น ปั่นสล็อตค่ายใหม่ ได้เงินเร็ว สล็อตเกมแตกง่าย ค่ายใหญ่ที่สุด รวมไว้ที่นี่ lava เว็บใหม่

  28. เกมแจกดี แตกทุกวันต้องเว็บนี้เท่านั้น แจกดีแจกไม่อั้น ได้เงินไว ถอนไว เงินเข้าไวที่สุด สล็อตแตกง่าย จ่ายเร็ว เกมสล็อตทดลองเล่นฟรี สล็อตมาใหม่เว็บตรง สล็อตทดลองเล่น

  29. เว็บสล็อตค่ายใหม่ รวมเกมทุกเกม แตกง่าย เล่นเกมสล็อตได้ไม่มีขั้นต่ำ แจกโบนัสทุกวัน ถอนง่ายจ่ายเงินจริง เล่นได้ทุกวันไม่ต้องดาวน์โหลด superslot

  30. this article is nicely written. it is make supportive to everyone absolutely for utilizes it, including me. keep doing what you are doing and do not pause to write greater posts. this is the treasured help for us. Regards King338 . thank you very much

  31. thanks for a completely thrilling weblog. What differently may i get that type of information written in one of these perfect fashion? I have ve a challenge that i’m simply now running on, and i’ve been at the appearance out for similar information. regards King338

  32. i have examine all the commentary and recommendations published through the guests for this composition are truly great, we are suitable to look ahead to your coming composition so handiest. thanks regards King338 thank you very much

  33. quite excellent submit. I just stumbled upon your web and desired to mention that i have actually loved analyzing your web posts. Any manner i will be subscribing for your feed and i desire you put up again quickly. massive thank you for the useful information. Regards King338

  34. This is nice post. I feel stimulating read your content and learn new experience for point view regrading this article. keep your post new work so we all can enjoy read it again. King338

  35. เว็บไซต์ PGSOFT168.ORG รวบรวมเกมเดิมพันที่ชื่นชอบทุกรูปแบบแจกทุกวันโปรโมชั่น50รับ100ที่ฝากเข้ามาเพียง 50 รับทุนเพิ่มมากขึ้น 100 ทันทีโปรโมชั่นบนเว็บไซต์ของเรามีเงื่อนไขในการรับที่ง่ายๆถอนไม่อั้น ไม่จำกัดเวลาคุ้มค่าสุดๆโปรนี้

发表评论

电子邮件地址不会被公开。

Time limit exceeded. Please complete the captcha once again.