带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.3 Kube-APIServer 介绍(七)

2.3.5       Kube-APIServer架构

通常,KubernetesAPI中的每种资源都需要处理 REST请求和管理对象的存储。核心的 KubernetesAPI服务处理内建的资源,如Pod或 Service。如果想为集群添加自定义资源对象,有以下两种方法可以实现。

(1)        CRD 是最简单的方式,创建自定义资源对象的时候不需要编程。通常情况下,会将这个自定义资源与一个自定义资源的 Controller结合使用,这就对外提供了一个真正的声明式 API。Controller会同步自定义资源的当前状态和期望状态。

(2)         Aggregation可以让用户通过开发和部署单独的 APIServer来实现自定义资源对象,核心的Kube-APIServer会将请求转发到APIServer处理,所有客户端都可以连接。

Kube-APIServer提供了 3种服务,分别是 APIExtensionsServer、KubeAPIServer和 AggregatorServer,它们为上述的应用场景提供不同的资源。

(1) APIExtensionsServer:用 户可以通过 CRD的方式扩展 Kubernetes的服 务,APIExtensions Server处理 CRD和 CR的 REST请求,如果创建未经定义的 CR,则会返回404的状态码。

(2)KubeAPIServer:这个服务是 Kubernetes的核心服务,负责处理内置资源,如Pod、Deployment和Service等。

(3) AggregatorServer:用户可以通过 Aggregation方式扩展 Kubernetes的服务,AggregatorServer负责将用户的请求转发给单独部署的各个 APIServer。

 

上一篇:带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.3 Kube-APIServer 介绍(五)


下一篇:带你读《云原生应用开发 Operator原理与实践》第三章 Kubebuilder 原理3.2 Kubebuilder 模块分析(五)