聚合层允许 Kubernetes 通过附加的 API 进行扩展,超越了核心 Kubernetes API 所提供的功能。这些附加 API 可以是现成的解决方案,例如 metrics server,也可以是你自己开发的 API。
聚合层与 自定义资源定义 (Custom Resource Definitions) 不同,后者是一种让 kube-apiserver 识别新对象类型的方法。
聚合层在 kube-apiserver 进程内运行。在扩展资源注册之前,聚合层不会执行任何操作。要注册 API,你需要添加一个 APIService 对象,它会“声明” Kubernetes API 中的 URL 路径。届时,聚合层会将发送到该 API 路径(例如 /apis/myextension.mycompany.io/v1/…)的所有请求代理到已注册的 APIService。
实现 APIService 最常见的方式是在集群中运行一个或多个 扩展 API 服务器 (extension API server) Pod。如果你使用扩展 API 服务器来管理集群中的资源,则扩展 API 服务器(也称为 "extension-apiserver")通常会与一个或多个 控制器 配对使用。apiserver-builder 库为扩展 API 服务器及其关联的控制器提供了框架。
扩展 API 服务器应具有与 kube-apiserver 之间的高性能、低延迟网络连接。发现请求必须能够在 5 秒或更短的时间内完成与 kube-apiserver 的往返。
如果你的扩展 API 服务器无法满足此延迟要求,请考虑进行更改以使其达标。
或者:了解如何使用 自定义资源定义 来扩展 Kubernetes API。