首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

kubernetes 自定义资源(CRD)的校验

在以前的版本若要对 apiserver 的请求做一些访问控制,必须修改 apiserver 的源代码然后重新编译部署,非常麻烦也不灵活,apiserver 也支持一些动态的准入控制器,在 apiserver 配置中看到的ServiceAccount,NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota 等都是 apiserver 的准入控制器,但这些都是 kubernetes 中默认内置的。在 v1.9 中,kubernetes 的动态准入控制器功能中支持了 Admission Webhooks,即用户可以以插件的方式对 apiserver 的请求做一些访问控制,要使用该功能需要自己写一个 admission webhook,apiserver 会在请求通过认证和授权之后、对象被持久化之前拦截该请求,然后调用 webhook 已达到准入控制,比如 Istio 中 sidecar 的注入就是通过这种方式实现的,在创建 Pod 阶段 apiserver 会回调 webhook 然后将 Sidecar 代理注入至用户 Pod。 本文主要介绍如何使用 AdmissionWebhook 对 CR 的校验,一般在开发 operator 过程中,都是通过对 CR 的操作实现某个功能的,若 CR 不规范可能会导致某些问题,所以对提交 CR 的校验是不可避免的一个步骤。

02
领券