1. 程式人生 > 其它 >k8s 框架簡介

k8s 框架簡介

k8s 框架簡介

1.1 簡介

  • Kubernetes 是用來管理容器叢集的平臺。既然是管理叢集,那麼就存在被管理節點,針對每個 Kubernetes 叢集都由一個 Master 負責管理和控制叢集節點。

  • 我們通過 Master 對每個節點 Node 傳送命令。簡單來說,Master 就是管理者,Node 就是被管理者。

  • Node 可以是一臺機器或者一臺虛擬機器。在 Node 上面可以執行多個 Pod,Pod 是 Kubernetes 管理的最小單位,同時每個 Pod 可以包含多個容器(Docker)。

  • 通常我們都是通過 kubectl 對 Kubernetes 下命令的,它通過 APIServer 去呼叫各個程序來完成對 Node 的部署和控制

  • APIServer 的核心功能是對核心物件(例如:Pod,Service,RC)的增刪改查操作,同時也是叢集內模組之間資料交換的樞紐。

  • 它包括了常用的 API,訪問(許可權)控制,註冊,資訊儲存(etcd)等功能。在它的下面我們可以看到 Scheduler,它將待排程的 Pod 繫結到 Node 上,並將繫結資訊寫入 etcd 中。

  • etcd 包含在 APIServer 中,用來儲存資源資訊。接下來就是 Controller Manager 了,如果說 Kubernetes 是一個自動化執行的系統,那麼就需要有一套管理規則來控制這套系統。

  • Controller Manager 就是這個管理者,或者說是控制者。它包括 多 個 Controller,分別對應著副本,節點,資源,名稱空間,服務等等

  • 緊接著,Scheduler 會把 Pod 排程到 Node 上,排程完以後就由 kubelet 來管理 Node 了。

  • kubelet 用於處理 Master 下發到 Node 的任務(即 Scheduler 的排程任務),同時管理 Pod 及 Pod 中的容器。

  • 在完成資源排程以後,kubelet 程序也會在 APIServer 上註冊 Node 資訊,定期向 Master 彙報 Node 資訊,並通過 cAdvisor 監控容器和節點資源。

  • 由於,微服務的部署都是分散式的,所以對應的 Pod 以及容器的部署也是。為了能夠方便地找到這些 Pod 或者容器,引入了 Service(kube-proxy)程序,它來負責反向代理和負載均衡的實施。