kubernetes API Server的核心功能是提供了Kubernetes各类资源对象(Pod,RC,Service等)的增删改查及Watch等HTTP Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。
(1)是集群管理的API入口
(2)是资源配额控制的入口
(3)提供了完备的集群安全机制
1.1 概述
API server通过kube-apiserver进程提供服务,运行再master节点上,默认使用8080端口。
1.2 独特的kubernetes Proxy API接口
API server还提供了特殊的REST接口-kubernetes Proxy API接口,作用是代理REST请求,即Kubernetes API Server把收到的REST请求转发到某个Node上的kubelet守护进程的REST端口上,由该Kubelet进程负责相应。
1.3 集群功能模块之间的通信
集群内的各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口(用GET,LIST,WATCH方法)来实现。从而实现各模块之间的信息交互。
kubelet和API Server的交互,每个Node节点上的kubelet定期报告自身的状态。API server更新到etcd中。kubelet通过apiserver的watch接口监听pod信息,做对应的操作。
kube-controller-manager和API Server交互。kube-controller-manager的Node Controller模块通过API Server提供的Watch接口,实时监控Node信息,并作相应处理。
kube-scheduler和API Server交互,当Scheduler通过API Server的Watch接口监听到新建pod信息后,会检索符合要求的Node列表,开始执行pod调度逻辑。调度成功后绑定pod到目标节点