1.Kubernetes(K8S)架構
? K8S的目標旨在消除編排物理/虛擬計算卜录,網(wǎng)絡和存儲基礎設施的負擔誊稚,并使應用程序運營商和開發(fā)人員完全將重點放在以容器為中心的原語上進行自助運營虐拓。Kubernetes 也提供穩(wěn)定迎捺、兼容的基礎(平臺)绽淘,用于構建定制化的workflows 和更高級的自動化任務奔脐。 Kubernetes 具備完善的集群管理能力,包括多層次的安全防護和準入機制星澳、多租戶應用支撐能力疚顷、透明的服務注冊和服務發(fā)現(xiàn)機制、內(nèi)建負載均衡器募判、故障發(fā)現(xiàn)和自我修復能力荡含、服務滾動升級和在線擴容咒唆、可擴展的資源自動調(diào)度機制届垫、多粒度的資源配額管理能力。
K8S架構圖
核心組件(1-4屬于master,5-7屬于Nodes):
? ? 1.etcd保存了整個集群的狀態(tài)全释;
? ? 2.apiserver提供了資源操作的唯一入口装处,并提供認證、授權浸船、訪問控制妄迁、API注冊和發(fā)現(xiàn)等機制;
? ? 3.controller manager負責維護集群的狀態(tài)李命,比如故障檢測登淘、自動擴展、滾動更新等封字;
? ? 4.scheduler負責資源的調(diào)度黔州,按照預定的調(diào)度策略將Pod調(diào)度到相應的機器上;
? ? 5.kubelet負責維護容器的生命周期阔籽,同時也負責Volume(CSI)和網(wǎng)絡(CNI)的管理流妻;
? ? 6.Container runtime負責鏡像管理以及Pod和容器的真正運行(CRI);
? ? 7.kube-proxy負責為Service提供cluster內(nèi)部的服務發(fā)現(xiàn)和負載均衡笆制;
常用插件:
????CoreDNS負責為整個集群提供DNS服務
????Ingress Controller為服務提供外網(wǎng)入口
????Prometheus提供資源監(jiān)控
????Dashboard提供GUI
????Federation提供跨可用區(qū)的集群
更抽象一點的架構圖
K8S架構圖
K8S Master架構
etcd保存了整個集群的狀態(tài)绅这;
apiserver提供了資源操作的唯一入口,并提供認證在辆、授權证薇、訪問控制度苔、API注冊和發(fā)現(xiàn)等機制;
controller manager負責維護集群的狀態(tài)浑度,比如故障檢測林螃、自動擴展、滾動更新等俺泣;
scheduler負責資源的調(diào)度疗认,按照預定的調(diào)度策略將Pod調(diào)度到相應的機器上;
Node架構
K8S的分層設計理念
Kubernetes設計理念和功能類似Linux的分層架構伏钠,如下圖
核心層:Kubernetes最核心的功能横漏,對外提供API構建高層的應用,對內(nèi)提供插件式應用執(zhí)行環(huán)境
應用層:部署(無狀態(tài)應用熟掂、有狀態(tài)應用缎浇、批處理任務、集群應用等)和路由(服務發(fā)現(xiàn)赴肚、DNS解析等)
管理層:系統(tǒng)度量(如基礎設施素跺、容器和網(wǎng)絡的度量),自動化(如自動擴展誉券、動態(tài)Provision等)以及策略管理(RBAC指厌、Quota、PSP踊跟、NetworkPolicy等)
接口層:kubectl命令行工具踩验、客戶端SDK以及集群聯(lián)邦
生態(tài)系統(tǒng):在接口層之上的龐大容器集群管理調(diào)度的生態(tài)系統(tǒng),可以劃分為兩個范疇:
????Kubernetes外部:日志商玫、監(jiān)控箕憾、配置管理、CI拳昌、CD袭异、Workflow、FaaS炬藤、OTS應用御铃、ChatOps等
????Kubernetes內(nèi)部:CRI、CNI刻像、CVI畅买、鏡像倉庫、Cloud Provider细睡、集群自身的配置和管理等