2. Kubernetes 架构基础:Master 节点、Worker 节点、API Server 核心作用

在深入准入控制与安全配置之前,必须理解 Kubernetes 集群的两大物理角色——Master 节点(控制平面)与Worker 节点(数据平面),以及它们之间的通信中枢 API Server。所有安全策略、资源变更、节点扩容请求,最终都通过 API Server 进入系统。

2.1 集群整体架构

下图展示了标准 Kubernetes 集群中 Master 与 Worker 节点的组件布局,以及 API Server 如何作为唯一入口连接所有组件。

Kubernetes 集群架构:Master 与 Worker 节点 Kubernetes 集群架构总览 Master 节点(控制平面) API Server etcd(键值存储) Scheduler Controller Manager Worker 节点(数据平面) Kubelet Kube-Proxy Pod Pod Pod Pod 说明:所有外部请求(kubectl、CI/CD、监控系统)均通过 API Server 进入集群,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 控制平面的核心,也是所有集群操作的唯一入口。理解它的请求处理流程,是掌握准入控制的基础。

API Server 请求处理流程 API Server 请求处理流程 1. 认证 TLS / / 证书 2. 授权 RBAC / ABAC 3. 准入控制 Mutating / Validating 4. 存储到 etcd 持久化 准入控制是安全策略的最后一道防线 • Mutating Admission Webhook:在请求持久化前修改资源(如注入 Sidecar、设置默认安全上下文) • Validating Admission Webhook:验证请求是否符合策略(如禁止特权容器、检查镜像来源) • 节点扩容场景:准入控制可强制新 Pod 必须带有资源限制、必须使用只读根文件系统等 • 只有通过所有准入控制插件的请求,才会被写入 etcd 并最终生效

2.5 节点扩容场景下的架构交互

当集群需要增加 Worker 节点(例如应对业务高峰)时,以下步骤展示了 Master 与 Worker 组件如何协同工作,以及 API Server 如何确保安全策略贯穿始终:

  1. 节点注册:新 Worker 节点上的 Kubelet 使用 TLS 证书向 API Server 发起注册请求。
  2. 认证与授权:API Server 验证 Kubelet 证书(认证),并检查该节点是否有权加入集群(授权)。
  3. 准入控制:节点创建请求经过准入控制插件,例如检查节点标签是否符合命名空间隔离策略。
  4. 状态存储:API Server 将新节点信息写入 etcd,Controller Manager 中的 Node Controller 开始监控该节点。
  5. Pod 调度:当 Deployment 因扩容需要创建新 Pod 时,Scheduler 根据节点资源、污点/容忍度、节点选择器将 Pod 分配到新节点。
  6. 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 符合安全策略的关键环节。
  • 理解架构中各组件的作用,有助于后续章节中精准配置准入控制规则,实现安全的集群扩容。