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

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

1. 內(nèi)核層

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

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

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

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

2. 應(yīng)用層

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

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

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

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

3. 治理層

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

對應(yīng)用運行的可選層,沒有這層功能不影響應(yīng)用的執(zhí)行;

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

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

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

K8S官方的項目會提供庫、工具、UI等外圍工具;

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

5. 生態(tài)層

不屬于K8S范圍。


其中:

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

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

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