第三章 kubernetes核心原理

kubernetes API Server

提供了Kubernetes各类资源对象(如pod,re,service等)的增删改查及watch等Http Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。

运行下列的curl命令,分别返回集群中Pod列表,service列表,rc列表等。

curl localhost:8080/api/v1/pods

curl localhost:8080/api/v1/services

curl localhost:8080/api/v1/replicationcontrollerss

 

只暴露部分REST服务,可以在master或者其他任何节点上通过运行kebectl proxy进程启动内部代理

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

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副本。

 

posted @ 2017-09-21 17:24  gaojy  阅读(210)  评论(0编辑  收藏  举报