K8S工作原理詳解(圖文全面總結(jié))
K8S
Kubernetes(簡稱 K8S)是一個用于管理容器化應(yīng)用的平臺,由“ Google” 開發(fā)并于 2014 年開源。
K8S 能夠幫助開發(fā)者、和運維人員,自動化應(yīng)用的部署、擴(kuò)展、和管理,適用于構(gòu)建云原生應(yīng)用。
圖片
K8S ,能自動將容器化應(yīng)用,分配到合適的節(jié)點(服務(wù)器)上,通過自動調(diào)度來確保資源合理分配,最大化資源利用率。
K8S 適合,管理由多個小服務(wù)組成的微服務(wù)架構(gòu),提供自動擴(kuò)展、自愈、和負(fù)載均衡,保證服務(wù)的高可用性、和彈性伸縮..等場景。
K8S工作原理
K8S 是一個分布式系統(tǒng),主要由 Master 節(jié)點(主節(jié)點)、和Node節(jié)點(工作節(jié)點)**組成:
如下圖所示:
圖片
Master 節(jié)點負(fù)責(zé):整個集群的管理、和調(diào)度,而 Node 節(jié)點則負(fù)責(zé)運行應(yīng)用容器,這是K8S的大致分工。
Master 節(jié)點
Master,負(fù)責(zé)管理整個集群的控制、和調(diào)度,決定哪些應(yīng)用實例部署在 Node 上。
Master,主要包含以下組件:
API Server
APIServer,負(fù)責(zé):接收用戶的請求,并將請求轉(zhuǎn)化為操作指令交由后端的其他組件執(zhí)行。
圖片
API Server 是集群的入口,所有對 K8S 的操作,如:資源創(chuàng)建、修改、刪除...等,都是通過 HTTP 請求與 API Server 交互的。
所有組件都通過 API Server 通信,確保系統(tǒng)的統(tǒng)一性、和安全性,有點類似“微服務(wù)網(wǎng)關(guān)”的角色。
etcd
etcd,是分布式鍵值存儲數(shù)據(jù)庫,用于保存集群狀態(tài)信息。
API Server 是 K8S 集群的“控制中心”,與 etcd 進(jìn)行交互以保存、和檢索集群的配置信息、和狀態(tài)數(shù)據(jù)。
etcd,會存儲:配置信息、Pod 狀態(tài)、Service 配置...等,所有的配置信息都存儲在 etcd 中。
etcd 使用 Raft 協(xié)議保證數(shù)據(jù)一致性,確保即使在集群部分節(jié)點失效時,etcd 中的數(shù)據(jù)依然是可靠的。
Scheduler
調(diào)度器,負(fù)責(zé):將新創(chuàng)建的 Pod 分配到合適的 Node 節(jié)點上。
Scheduler 根據(jù)資源使用情況,比如:(CPU、內(nèi)存等)、拓?fù)湫畔ⅲňW(wǎng)絡(luò)、節(jié)點可用性...等等),以及調(diào)度策略進(jìn)行選擇。
Controller Manager
Controller Manager ,是 K8S 中的控制器執(zhí)行者,負(fù)責(zé):管理各種控制器。
例如:副本控制器、節(jié)點控制器、服務(wù)控制器...等,如下圖所示:
圖片
Controller Manager,負(fù)責(zé):管理集群的控制循環(huán),包括:節(jié)點狀態(tài)監(jiān)控、Pod 副本數(shù)量維護(hù)、處理故障節(jié)點。。。等。
Controller Manager ,通過循環(huán)檢查集群的當(dāng)前狀態(tài),并與期望狀態(tài)進(jìn)行比較。
如果存在不一致的地方,控制器會啟動相應(yīng)的操作以糾正實際狀態(tài)。
比如:ReplicaSet 控制器會確保在任何時刻,Pod 的副本數(shù)都、與用戶定義的副本數(shù)一致。
Node 節(jié)點
Node節(jié)點,也稱為工作節(jié)點,負(fù)責(zé)運行具體的容器化應(yīng)用,接受 Master 的任務(wù)調(diào)度。
圖片
K8S的工作流程,大致如下:
- 創(chuàng)建和提交資源定義:用戶通過 YAML 文件或 kubectl 命令,提交 Deployment 、或 Pod 等資源定義到 API Server;
 - API Server 處理請求:API Server 驗證請求,并將資源定義保存到 etcd,確保資源定義的持久性;
 - 調(diào)度和部署:檢測到新創(chuàng)建的 Pod,并通過資源調(diào)度策略選擇合適的 Node 節(jié)點;
 - 監(jiān)控與維護(hù):Controller Manager 持續(xù)監(jiān)控集群狀態(tài),出現(xiàn)異常時自動重啟、或重新調(diào)度。
 
這些組件共同合作,確保 K8S 集群的資源管理、調(diào)度、監(jiān)控和自愈功能順利運行。















 
 
 


















 
 
 
 