Kubernetes 服务目录
前言
这篇文章写得太好了,直接看它吧:Kubernetes Service Catalog 101。原理、示例都有。
有一点要注意,Service Catalog 本质上是扩展的 API server,使用了 aggregation layer
聚合层运行在 apiserver 进程内部,允许用户为集群安装额外的 Kubernetes 风格的 API,扩展 core API 的功能。聚合层需要启动 apiserver 的时候开启方可使用。
在用户注册扩展资源之前,聚合层什么也不做。用户要注册 API,必需向系统中添加一个 APIService 对象,用来声明 API 的 URL 路径以及处理请求的后端 APIService。此后,聚合层会将发往那个路径的所有请求(eg. /apis/myextension.mycompany.io/v1/…)都转发给注册的 APIService。
一般情况下,APIService 对象以 extension-apiserver 运行在集群中的一个 pod 中,如果需要主动管理添加的资源,extension-apiserver 还需要与一个或多个 controlller 进行关联,apiserver-builder 为双方提供了一个框架。
Service Catalog 是 Kubernetes 的一种API扩展实现,方便 Kubernetes 集群内部应用访问集群外部、由第三方管理、提供的服务,如由云供应商提供的数据库服务。Service Catalog 的安装会为它所提供的服务提供 extension-apiserver 和 controller 两个扩展组件。
另外一个使用聚合层的例子是 metrics-server。
参考资料
[1] Kubernetes Service Catalog 101
[2] kubernetes 监控组件 metrics-server 部署