華為云計(jì)算 云知識(shí) K8S社區(qū)架構(gòu)中對(duì)各層的詳細(xì)定義
K8S社區(qū)架構(gòu)中對(duì)各層的詳細(xì)定義

K8S社區(qū)架構(gòu)中對(duì)Kubernetes的分層架構(gòu)有詳細(xì)的定義。

1. 內(nèi)核層

Kubernetes最核心功能,對(duì)外提供API構(gòu)建高層的應(yīng)用,對(duì)內(nèi)提供插件式應(yīng)用執(zhí)行環(huán)境;

由主流K8S codebase實(shí)現(xiàn)(主項(xiàng)目),屬于K8S的內(nèi)核、最小特性集。等同于Linux Kernel;

提供必不可少Controller、Scheduler的默認(rèn)實(shí)現(xiàn);

集群管理類Controller:Node/gc/podgc/volume/namespace/resourcequota/serviceaccount

2. 應(yīng)用層

部署(無(wú)狀態(tài)/有狀態(tài)應(yīng)用、批處理、集群應(yīng)用等)和路由(服務(wù)發(fā)現(xiàn)、DNS解析等);

K8S發(fā)行版必備功能和API,K8S會(huì)提供默認(rèn)的實(shí)現(xiàn),如Scheduler;

Controller和scheduler可以被替換為各自的實(shí)現(xiàn),但必須通過(guò)一致性測(cè)試;

業(yè)務(wù)管理類Controller:daemonset/replicaset/replication/statefulset/cronjob/service/endpoint

3. 治理層

策略執(zhí)行和 自動(dòng)化 編排;

對(duì)應(yīng)用運(yùn)行的可選層,沒(méi)有這層功能不影響應(yīng)用的執(zhí)行;

自動(dòng)化API:水平 彈性伸縮 、租戶管理、集群管理、動(dòng)態(tài)LB等;

策略API:限速、資源配額、pod可靠性策略、network policy等。

4. 接口層(工具、SDK庫(kù)、UI等)

K8S官方的項(xiàng)目會(huì)提供庫(kù)、工具、UI等外圍工具;

外部可提供自有的實(shí)現(xiàn)。

5. 生態(tài)層

不屬于K8S范圍。


其中:

1、內(nèi)核層:提供最核心的特性最小集以及API,為必選模塊;

2、內(nèi)核層之上:以各種Controller插件方式實(shí)現(xiàn)內(nèi)核層API,支持可替換的實(shí)現(xiàn);

3、內(nèi)核層之下:是各種適配存儲(chǔ)、網(wǎng)絡(luò)、容器、Cloud Provider等。