02_K8s干货笔记之K8s集群架构和组件
📅 2026/8/2 2:57:59
👁️ 阅读次数
📝 编程学习
前言
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 构建高层的应用,对内提供插件式应用执行环境
编程学习
技术分享
实战经验