kubernetes API Servernode
提供了Kubernetes各种资源对象(如pod,re,service等)的增删改查及watch等Http Rest接口,成为集群内各个功能模块之间数据交互和通讯的中心枢纽,是整个系统的数据总线和数据中心。api
运行下列的curl命令,分别返回集群中Pod列表,service列表,rc列表等。curl
curl localhost:8080/api/v1/podsurl
curl localhost:8080/api/v1/servicesspa
curl localhost:8080/api/v1/replicationcontrollerss代理
只暴露部分REST服务,能够在master或者其余任何节点上经过运行kebectl proxy进程启动内部代理对象
kubectl proxy --reject-path="^/api/v1/replicationcontrollers" --port=8001 --v=2blog
curl localhost:8001/api/v1/replicationcontrollers <h3>Unauthorized<h3>接口
独特的kubernetes Proxy API 接口进程
API里关于Node的相关接口,其中{name}为节点的 名称或IP地址,包括如下几个具体接口。
/api/v1/proxy/nodes/{name}/pods/ 列出指定节点内全部pod的信息
/api/v1/proxy/node/{name}/stats/ 列出指定节点内物理资源的统计信息
/api/v1/proxy/nodes/{name}/spec/ 列出指定节点的概要信息
集群功能模块之间的通讯
每一个node每隔一个时间周期,就会调用一次API Server 的Rest接口报告自身状态,API Server 接受到这些信息后,将节点状态信息更新到etcd中。
kube-controller-manager进程与API Server交互,kube-controller-manager中的node Controller模块经过API Server提供非watch接口,实时监控Node的信息,并作相应的处理。
Controller Manager原理分析
Controller Manager做为集群内部的管理控制中心,负责集群内的node,pod副本,服务端点(Endpoint),命名空间Namespace,服务帐号(ServiceAccount),资源定额(ResourceQuota)等的管理,当某个Node意外宕机时,Controller Manager会及时发现故障并执行自动修复流程,确保集群始终处于预期的工做状态。
Replication Controller
Replication Controller的核心功能是确保在任什么时候候集群中一个rc所关联的pod副本数量保持预设值,若是发现pod副本数量超过预期值,则replication controller会销毁一些pod副本。