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