1. 程式人生 > >Kubernetes核心原理簡單總結(一)

Kubernetes核心原理簡單總結(一)

1、kubernetes APIserver

1)提供了叢集管理的API介面

2)是叢集內各個功能模組之間資料互動和通訊的中心樞紐

3)擁有完備的叢集安全機制

API通過 apiserver程序提供服務,該程序在master節點上。該程序包括兩個埠:本地埠,預設是8080埠和安全埠,預設6443埠;叢集內的功能模組通過API server將資訊存入Etcd,其他模組通過API server讀取這些資訊,從而實現模組間的通訊。

2、Controller Manager(控制器)

Controller Manager是叢集內部的控制管理中心,負責叢集內Nodepod副本、服務端點、名稱空間、服務賬號、資源定額等的管理並執行自動化修復流程。

內部包含:

1)Replication Controller:作用是確保任何時候叢集中一個資源物件(RC)所關聯的Pod都保持一定數量的Pod副本處於正常執行狀態。

2)Node controller:負責發現、管理和監控叢集中的各個 Node節點。

3)ResourceQuota Controller:提供資源配額管理;

4)Namespace Controller:定時讀取Namespace資訊,進行修改刪除;

5)ServiceAccount ControllerTocken Controller:與安全相關的控制器;

6)Service Controller:監控Service的變化。

7)Endpoints Controller:通過Store來快取Servicepod資訊,監控ServicePod的變化。

3、Kubernetes Scheduler(排程模組)

Kubernetes scheduler 負責Pod排程的重要功能模組,負責接收Controller Mannager排程的pod (建立的新Pod)按照特定的排程演算法策略繫結的叢集中合適的Node上,並將繫結資訊寫入Etcd中。

預設的排程流程:

1)預選排程過程,遍歷所有的Node節點,篩選出符合要求的候選節點(內建了多種篩選策略);

2)確定最優節點,在第一步的基礎上採用優先策略計算每個候選節點的積分,積分高的勝出。

4、Kubelet

該程序處理Master節點上下發到本節點的任務,管理Podpod中的容器。每個Kubelet都會在API server上註冊節點自身的資訊,定期向MAster節點彙報節點資源的使用情況。Node節點上的Kubelet通過API-server監聽到Kubernetes Scheduler產生的Pod繫結事件,然後獲取pod清單,下載映象,並啟動容器。

5、Kube-proxy(代理)

Kube-proxy充當kubernetesService的負載均衡器和服務代理的角色。service是一組pod的服務抽象,相當於一組podLB,負責將請求分發給對應的podservice會為這個LB提供一個IP,一般稱為cluster IPkube-proxy的作用主要是負責service的實現,具體來說,就是實現了內部從podservice和外部的從node portservice的訪問。