2. Kubernetes 架构基础:Master 节点、Worker 节点、API Server 核心作用
在深入准入控制与安全配置之前,必须理解 Kubernetes 集群的两大物理角色——Master 节点(控制平面)与Worker 节点(数据平面),以及它们之间的通信中枢 API Server。所有安全策略、资源变更、节点扩容请求,最终都通过 API Server 进入系统。
2.1 集群整体架构
下图展示了标准 Kubernetes 集群中 Master 与 Worker 节点的组件布局,以及 API Server 如何作为唯一入口连接所有组件。
2.2 Master 节点核心组件
Master 节点运行控制平面组件,负责集群的全局决策与状态管理。在节点扩容场景中,Master 节点负责调度新 Pod、更新 etcd 状态、并确保安全策略生效。
| 组件 | 核心职责 | 与安全/扩容的关联 |
|---|---|---|
| API Server | RESTful API 入口,认证、授权、准入控制、请求验证 | 所有扩容请求必须经过 API Server;准入控制插件在此执行 |
| etcd | 分布式键值存储,保存集群所有状态数据 | 存储节点信息、Pod 定义、Secret、RBAC 规则;加密与备份是关键 |
| Scheduler | 监控未调度的 Pod,选择合适的 Worker 节点进行绑定 | 扩容时决定新 Pod 落在哪个节点;可配置节点选择器与污点容忍 |
| Controller Manager | 运行各种控制器(Deployment、Node、Namespace 等) | Deployment 控制器负责维持期望副本数;节点控制器监控节点健康 |
安全提示: 在生产环境中,Master 节点应部署在独立的网络隔离区域,仅允许必要的管理流量访问 API Server(端口 6443)。etcd 必须启用 TLS 双向认证,防止数据泄露。
2.3 Worker 节点核心组件
Worker 节点是实际运行容器化应用的工作机器。当集群进行节点扩容(增加 Worker 节点)时,新节点需要正确配置以下组件才能加入集群。
- Kubelet:每个节点上的主要代理,负责与 API Server 通信,管理 Pod 生命周期(创建、监控、重启)。节点扩容时,Kubelet 向 API Server 注册自身,并持续上报节点状态。
- Kube-Proxy:网络代理,维护节点上的网络规则,实现 Service 的负载均衡。扩容后,Kube-Proxy 自动同步新的 Service 端点。
- 容器运行时(如 containerd、CRI-O):负责拉取镜像并运行容器。安全配置包括镜像签名验证、运行时隔离策略。
2.4 API Server:集群的“安全大门”
API Server(kube-apiserver)是 Kubernetes 控制平面的核心,也是所有集群操作的唯一入口。理解它的请求处理流程,是掌握准入控制的基础。
2.5 节点扩容场景下的架构交互
当集群需要增加 Worker 节点(例如应对业务高峰)时,以下步骤展示了 Master 与 Worker 组件如何协同工作,以及 API Server 如何确保安全策略贯穿始终:
- 节点注册:新 Worker 节点上的 Kubelet 使用 TLS 证书向 API Server 发起注册请求。
- 认证与授权:API Server 验证 Kubelet 证书(认证),并检查该节点是否有权加入集群(授权)。
- 准入控制:节点创建请求经过准入控制插件,例如检查节点标签是否符合命名空间隔离策略。
- 状态存储:API Server 将新节点信息写入 etcd,Controller Manager 中的 Node Controller 开始监控该节点。
- Pod 调度:当 Deployment 因扩容需要创建新 Pod 时,Scheduler 根据节点资源、污点/容忍度、节点选择器将 Pod 分配到新节点。
- Kubelet 执行:新节点上的 Kubelet 接收 Pod 定义,通过容器运行时启动容器,并持续上报状态。
安全风险点: 在节点扩容过程中,如果准入控制配置不当,攻击者可能利用新节点绕过安全策略。例如,未经验证的节点可能被注册到集群,或新 Pod 可能被赋予过高的权限。因此,必须启用 NodeRestriction 准入插件,限制 Kubelet 只能修改自身节点上的 Pod 对象。
2.6 关键组件对比:Master vs Worker
| 维度 | Master 节点 | Worker 节点 |
|---|---|---|
| 核心功能 | 集群管理、调度、状态存储 | 运行容器化应用 |
| 关键进程 | API Server, etcd, Scheduler, Controller Manager | Kubelet, Kube-Proxy, 容器运行时 |
| 安全敏感度 | 极高——控制整个集群 | 高——运行工作负载,需隔离 |
| 扩容影响 | 一般不直接扩容,通过高可用部署 | 直接增加节点数量以扩展计算能力 |
| 网络暴露 | API Server 端口(6443)需严格限制 | 节点端口(30000-32767)需防火墙控制 |
2.7 本节小结
- Kubernetes 集群由 Master 节点(控制平面)和 Worker 节点(数据平面)组成。
- API Server 是所有请求的唯一入口,负责认证、授权、准入控制,并将最终状态写入 etcd。
- 在节点扩容场景中,准入控制 是确保新节点和新 Pod 符合安全策略的关键环节。
- 理解架构中各组件的作用,有助于后续章节中精准配置准入控制规则,实现安全的集群扩容。