通过聚合层扩展KubernetesAPI
使用聚合层(AggregationLayer),用户可以通过额外的API扩展Kubernetes,而不局限于Kubernetes核心API提供的功能。
这里的附加API可以是现成的解决方案比如metricsserver,或者你自己开发的API。
聚合层不同于定制资源(CustomResources)。后者的目的是让kube-apiserver能够认识新的对象类别(Kind)。
聚合层
聚合层在kube-apiserver进程内运行。在扩展资源注册之前,聚合层不做任何事情。要注册API,用户必须添加一个APIService对象,用它来“申领”KubernetesAPI中的URL路径。自此以后,聚合层将会把发给该API路径的所有内容(例如/apis/myextension.mycompany.io/v1/…)转发到已注册的APIService。
APIService的最常见实现方式是在集群中某Pod内运行扩展API服务器。如果你在使用扩展API服务器来管理集群中的资源,该扩展API服务器(也被写成“extension-apiserver”)一般需要和一个或多个控制器一起使用。apiserver-builder库同时提供构造扩展API服务器和控制器框架代码。
反应延迟
扩展API服务器与kube-apiserver之间需要存在低延迟的网络连接。发现请求需要在五秒钟或更短的时间内完成到kube-apiserver的往返。
如果你的扩展API服务器无法满足这一延迟要求,应考虑如何更改配置以满足需要。