k8基礎架構


Kubernetes采用主從分布式架構,包括Master Node(主節點)、Worker Node(從節點或工作節點),以及客戶端命令行工具kubectl和其它附加項。Master Node:主控節點,對集群進行調度管理。由API Server、Scheduler、Cluster State Store和Controller-Manger Server所組成。其功能作用如下:

1. API Server:提供了統一的資源操作入口,提供認證、授權、訪問控制、API注冊和 發現等機制。

2. Scheduler:負責資源調度,按照預定的調度策略將Pod調度到相應的節點上。

3. Cluster State Store:保存了整個集群的狀態,默認使用Etcd。

4. Controller-Manger Server:負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等;Worker Node:工作節點,運行容器化的業務應用。包含kubelet、kube proxy和Container Runtime。功能如下:

1. kubelet:維護容器的生命周期,並管理CSI(Container Storage Interface)和CNI(Conteinre Network Interface)

2. kube-proxy:基於一種公共訪問策略(例如:負載均衡),提供訪問pod的途徑;

3. Container runtime:負責鏡像管理以及Pod和容器的真正運行,如:docker;

kubectl: Kubernetes集群的命令行接口,用於通過命令行與API Server進行交互,實現在集群中進行各種資源的維護與管理操作;

Add-on:對Kubernetes核心功能的擴展,主要有網絡、服務發現和可視化這三大類的附加項。工作原理

 

 

1、准備包含應用程序的Deployment的yml文件,然后通過kubectl客戶端工具發送給ApiServer。

2、ApiServer接收到客戶端的請求並將資源內容存儲到數據庫(etcd)中。

3、Controller組件(包括scheduler、replication、endpoint)監控資源變化並作出反應。

4、ReplicaSet檢查數據庫變化,創建期望數量的pod實例。

5、Scheduler再次檢查數據庫變化,發現尚未被分配到具體執行節點(node)的Pod,然后根據一組相關規則將pod分配到可以運行它們的節點上,並更新數據庫,記錄pod分配情況。

6、Kubelete監控數據庫變化,管理后續pod的生命周期,發現被分配到它所在的節點上運行的那些pod。如果找到新pod,則會在該節點上運行這個新pod。

另:kuberproxy運行在集群各個主機上,管理網絡通信,如服務發現、負載均衡。當有數據發送到主機時,將其路由到正確的pod或容器。對於從主機上發出的數據,它可以基於請求地址發現遠程服務器,並將數據正確路由,在某些情況下會使用輪循調度算法(Round-robin)將請求發送到集群中的多個實例。

CNI:flannel(網絡配置) calico(網絡配置、網絡策略)canel(網絡策略)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM