02_K8s干货笔记之K8s集群架构和组件

📅 2026/8/2 2:57:59 👁️ 阅读次数 📝 编程学习
02_K8s干货笔记之K8s集群架构和组件

前言

Kubernetes集群采用Master-Node架构,控制面板(Master)包含kube-apiserver(REST接口)、controller-manager(运行节点、任务等控制器)、cloud-controller-manager(云平台对接)、scheduler(Pod调度)和etcd(分布式KV存储)。节点组件负责运行容器,附加组件提供DNS、Ingress入口、监控(Prometheus)、Dashboard界面、Federation高可用及日志采集(Fluentd-elasticsearch)。分层架构从核心层(API与插件执行)、应用层(部署与路由)、管理层(度量、自动化、策略)、接口层到生态系统,共同构成完整、可扩展的容器编排体系。

一、集群架构

1.1 Borg架构图

1.2 K8s架构图

二、相关组件

2.1 控制面板组件(Master)

2.1.1 kube-apiserver

接口服务,基于 REST 风格开放 K8s 接口服务。

2.1.2 kube-controller-manager

kube-controller-manager 是控制平面组件,负责运行控制器进程。
从逻辑上讲,每个控制器都是一个独立的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。
这些控制器包括:

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应。
  • 任务控制器(Job Controller):监测代表一次性任务的 Job

2.1.3 cloud-controller-manager

云控制器管理器:第三方云平台提供的控制器 API 对接管理功能。

2.1.4 kube-scheduler

调度器:负责将 Pod 基于一定算法,将其调用到更合适的节点(服务器)上

2.1.5 etcd

理解为 k8s 的数据库,键值类型存储的分布式数据库,提供了基于 Raft 算法实现自主的集群高可用

2.2 节点组件

2.3 附加组件

2.3.1 kube-dns

kube-dns 负责整个集群提供 DNS 服务

2.3.2 Ingress Controller

Ingress Controller 为服务提供外网入口

2.3.3 Prometheus

Prometheus 提供资源监控

2.3.4 Dashboard

Dashboard 提供 GUI

2.3.5 Federation

Federation 提供高可用的集群

2.3.6 Fluentd-elasticsearch

Fluentd-elasticsearch 提供集群日志采集、存储与查询

三、分层架构

  • 生态系统
  • 接口层
  • 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态 Provision 等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy 等)
  • 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS 解析等)
  • 核心层:Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境