开发 AdmissionCheck 控制器

开发 AdmissionCheck 控制器(ACC)。

准入检查控制器,以下简称 ACC, 是管理与其关联的准入检查(由 spec.controllerName 对应值指定) 及针对配置了这些准入检查的 ClusterQueues 排队的工作负载的组件。

阅读准入检查以从用户角度了解更多机制。

子组件

ACC 可以内置在 Kueue 中或运行在不同的 Kubernetes 控制器管理器中, 并且应当实现对准入检查和工作负载的协调器。

AdmissionCheck 协调器

监控集群中的准入检查,并维护与其关联(通过 spec.controllerName)的准入检查的 Active 状态。

可选地,它可以监视自定义参数对象。

资源调配准入检查控制器在 pkg/controller/admissionchecks/provisioning/admissioncheck_reconciler.go 中实现了此功能。

工作负载协调器

它负责根据 ACC 的自定义逻辑维护各个工作负载的 AdmissionCheckStates。 它可以允许工作负载的准入、重新排队或使其失败。

资源调配准入检查控制器在 pkg/controller/admissionchecks/provisioning/controller.go 中实现了此功能。

参数对象类型

可选地,你可以定义一个集群级别的对象类型来保存特定于你的实现的准入检查参数。 用户可以在 spec.parameters 中的准入检查定义里引用此类对象类型的实例。

例如,资源调配准入检查控制器为此使用了 ProvisioningRequestConfig。

工具代码

pkg/util/admissioncheck 提供了可与 AdmissionCheck 的参数及其他功能交互的帮助代码。

示例

目前,Kueue 中实现了两个 ACC: