API Server

API Server的核心功能是为K8S的各类资源对象如(Pod\RC\Service等)的增、删、改、查及 Watch等提供HTTP Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。除此之外,它还有以下一些功能特性。

(1)是集群管理的API 入口。

(2)是资源配额控制的入口。

(3)提供了完备的集群安全机制。

API Server由master节点上的kube-apiserver进程提供服务,默认情况下通过8080端口或者6443端口提供REST服务.

通过以下命令可以在master或者其它任何节点上实现内部代理

kubectl proxy --reject-paths="^/api/v1/replicationcontrollers" --port=8001 --v=2

以上表示暴露所有接口,除/api/v1/replicationcontrollers之外

集群功能模块之间的通信

Kubernetes API Server作为集群的核心,负责集群各功能模块之间的通信。集群内的各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口(用GET、LIST 或WATCH方法)来实现,从而实现各模块之间的信息交互。 常见的一个交互场景是kubelet进程与API Server 的交互。每个Node节点上的kubelet每隔一个时间周期,就会调用一次API Server 的REST接口报告自身状态,API Server接收到这些信息后,将节点状态信息更新到etcd 中。此外,kubelet也通过API Server 的 Watch 接口监听Pod信息,如果监听到新的Pod副本被调度绑定到本节点,则执行Pod对应的容器的创建和启动逻辑;如果监听到Pod对象被删除,则删除本节点上的相应的Pod容器;如果监听到修改Pod信息,则 kubelet监听到变化后,会相应地修改本节点的Pod容器。