大家好,我是Zhang jintao。修改或删除Kubernetes资源)。
在本文中,我们将重点关注Kube-Apiserver的非常重要的部分。
在谈论K8S访问控制器之前,让我们首先回顾处理Kubernetes API处理的特定请求的过程。
图1,处理Kubernetes API处理的过程(从API处理程序到ETCD持久性)
如上图所示,Kube-Apiserver收到了每个API的请求。
它主要包含以下部分:
对于内部实施,请求将首先到达(构建)是一个对象
要根据配置初始化,如果网络服务的rootpath为或请求前缀与rootpath匹配,请输入RESTFUL处理链接。
建立TLS连接后,将执行认证。如果请求认证失败,将拒绝请求,并将返回401错误代码;如果认证成功,将执行管理局的一部分。许多支持客户认证方法,例如:X509客户证书,持票人令牌,基于用户名密码的身份验证,OpenID认证等。由于这些内容不是这些内容本文的重点,我们将暂时跳过它。有兴趣的朋友可以在评论区域留言。
对于Kubernetes,它支持各种权威模型,例如ABAC模型,RBAC模式和Webhook模式。当我们创建一个群集时,我们可以将参数直接配置为Kube-apiserver,并且我不会在此处详细介绍。
以上是请求处理过程。其中,我们的主角今天是我们的主角突变和验证录取。
访问控制器是指在请求获得认证和授权后可用于更改或验证操作的某些代码或功能。
访问控制过程分为两个阶段:
应该注意的是,某些控制器可以更改访问控制器并验证访问控制器。如果访问控制器的任何阶段拒绝了该请求,则将立即拒绝整个请求,并将错误返回给最终用户。
我们主要了解为什么我们需要从两个角度进入控制器:
考虑到这些需求更有用,实际上,Kubernetes现在已经意识到了许多在入学控制器中构建的。录取控制器/#什么dossive-controller-do
这些内置的入学控制器是在插件中使用Kube-aperver构建的,您可以启用并关闭它。例如,使用以下参数来控制:
控制器中还有两个特殊的东西,它们是和谐的。它们并没有真正实施相应的策略,而是为Kube-Abiserver提供了可扩展的方式。用户可以通过配置和自我构造使用自我构造服务。它是完全动态且非常方便的。
让我们来看看。
以Webhook的形式配置的入学控制器被用作Webhook形式的动态访问控制器。
它是用于接收访问请求和处理它的HTTP回调机制,这是Web服务。当前两种访问Webhook类型:
将优先考虑突变入院网络钩,可以在此过程中修改。
如果我们需要确保对象的最终状态执行某些操作,则应考虑使用验证的录取Webhook,因为到达此阶段的请求将不会再次修改。
它实际上是普通的HTTP服务器。需要处理的是资源类型。让我们看一个例子。
核心处理逻辑实际上是在处理请求Webhook时发送的,该请求Webhook将包含我们正在等待的资源对象进行验证。然后,我们根据实际需求验证或修改资源对象。
您需要在这里注意几点:
配置Webhook和触发规则的特定连接信息。可以在中间指定哪些资源的特定行为。
本文主要介绍Kubernetes的入学控制器。默认情况下,有些人以插件的形式编译了与Kube-aperver编译。此外,我们还可以通过编写动态访问控制器来完成相关需求。
当然,K8S生态系统中已经有许多准备好的工具可以帮助我们完成相应的内容。在许多情况下,无需自行开发相应的服务。我将与您分享当前主流上的当前主流,该主流可用于执行突变和验证访问控制的工具。欢迎跟随。
欢迎订阅我的文章公共帐户[Moelove]