Aggregated API Server

Aggregated(聚合的)API server是为了将原来的API server这个巨石(monolithic)应用给拆分成,为了方便用户开发自己的API server集成进来,而不用直接修改kubernetes官方仓库的代码,这样一来也能将API server解耦,方便用户使用实验特性。这些API server可以跟core API server无缝衔接,使用kubectl也可以管理它们。

架构

我们需要创建一个新的组件,名为kube-aggregator,它需要负责以下几件事:

  • 提供用于注册API server的API
  • 汇总所有的API server信息
  • 代理所有的客户端到API server的请求

注意:这里说的API server是一组“API Server”,而不是说我们安装集群时候的那个API server,而且这组API server是可以横向扩展的。

关于聚合的API server的更多信息请参考:Aggregated API Server

安装配置聚合的API server

有两种方式来启用kube-aggregator

  • 使用test mode/single-user mode,作为一个独立的进程来运行
  • 使用gateway modekube-apiserver将嵌入到kbe-aggregator组件中,它将作为一个集群的gateway,用来聚合所有apiserver。

kube-aggregator二进制文件已经包含在kubernetes release里面了。

参考

Aggregated API Servers - kuberentes design-proposals