通过聚合层扩展 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
功能可以禁用超时限制。但是,它将在将来的版本中删除。
接下来
- 阅读配置聚合层 文档,了解如何在自己的环境中启用聚合器(aggregator)。
- 然后安装扩展的 api-server 来开始使用聚合层。
- 也可以学习怎样 使用客户资源定义扩展 Kubernetes API。
反馈
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问Stack Overflow.在 GitHub 仓库上登记新的问题报告问题或者提出改进建议.