通过聚合层扩展 Kubernetes API

聚合层允许 Kubernetes 通过额外的 API 进行扩展,而不局限于 Kubernetes 核心 API 提供的功能。

概述

聚合层使您的集群可以安装其他 Kubernetes 风格的 API。这些 API 可以是预编译的、第三方的解决方案提供的例如service-catalog、或者用户创建的类似apiserver-builder一样的API可以帮助你上手。

聚合层在 kube-apiserver 进程内运行。在扩展资源注册之前,聚合层不做任何事情。要注册 API,用户必须添加一个 APIService 对象,用它来申领 Kubernetes API 中的 URL 路径。自此以后,聚合层将会把发给该 API 路径的所有内容(例如 /apis/myextension.mycompany.io/v1/…)代理到已注册的 APIService。

正常情况下,APIService 会实现为运行于集群中某 Pod 内的 extension-apiserver。如果需要对增加的资源进行动态管理,extension-apiserver 经常需要和一个或多个控制器一起使用。因此,apiserver-builder 同时提供用来管理新资源的 API 框架和控制器框架。另外一个例子,当安装了 service-catalog 时,它会为自己提供的服务提供 extension-apiserver 和控制器。

扩展 api 服务与 kube-apiserver 之间的连接应该具有低延迟的特性。特别是,发现请求和 kube-apiserver 的请求响应时间需要在五秒钟或更短的时间内。如果您的部署无法实现此目的,则应考虑如何进行改进。现在,利用 kube-apiserver 上的EnableAggregatedDiscoveryTimeout = false功能可以禁用超时限制。但是,它将在将来的版本中删除。

接下来

反馈

此页是否对您有帮助?

感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问Stack Overflow.在 GitHub 仓库上登记新的问题报告问题或者提出改进建议.