Kubernetes架构详解:Master、Node、Pod、Service分别负责什么?

Kubernetes架构是学习 K8s 时必须跨过去的一道门槛。很多初学者第一次接触 Kubernetes,会被一连串组件名称弄得很混乱:Master、Node、Pod、Service、Scheduler、API Server、etcd……看起来每个词都认识,但放在一起就很难建立整体理解。其实学习 Kubernetes 架构,最关键的不是一开始记住所有组件细节,而是先搞清楚:谁负责控制、谁负责运行、谁负责调度、谁负责暴露服务,以及这些能力之间是如何协同工作的。

一、为什么理解Kubernetes架构很重要

Kubernetes 并不只是一个“部署容器的工具”,它本质上是一套分布式控制系统。你向集群提交一个期望状态,比如“我要运行 3 个副本”,Kubernetes 会自动调度资源、拉起 Pod、监控状态并持续纠偏。

因此,如果不理解架构,就很难真正理解:

  • 为什么 Pod 会被调度到某个节点
  • 为什么 Service 能稳定访问后端实例
  • 为什么某个组件异常会影响整个集群
  • 为什么生产环境里要把控制面和工作节点分开管理

掌握架构之后,你对 Kubernetes 的部署、排障、性能优化和安全治理都会更有把握。

二、Kubernetes架构可以先分成哪两部分

从整体上看,Kubernetes 架构可以先粗略分成两层:

  • 控制平面(Control Plane)
  • 工作节点(Worker Node)

1. 控制平面负责“管理和决策”

控制平面更像是整个集群的大脑,负责接收请求、保存状态、做调度决策和持续控制集群状态。

2. 工作节点负责“真正运行应用”

工作节点负责运行 Pod 和容器,是业务应用实际落地的地方。

理解这一层分工后,很多组件的角色就会清晰很多:控制平面负责“想清楚该怎么做”,节点负责“把事情执行出来”。

三、Master在Kubernetes里负责什么

虽然现在更标准的说法是 Control Plane,但很多资料和用户仍然习惯把它叫作 Master。它主要包括以下几个关键组件。

1. API Server

API Server 是 Kubernetes 的统一入口。无论是 kubectl 提交资源、控制器同步状态,还是其他组件查询集群信息,最终都要通过 API Server。

可以把它理解成 Kubernetes 的“总前台”。所有资源对象,如 Pod、Deployment、Service、ConfigMap、Secret 等,都会通过它进行增删改查。

2. etcd

etcd 是 Kubernetes 的分布式键值数据库,用来保存集群的核心状态数据。比如有哪些节点、有哪些 Pod、Deployment 副本数是多少,这些元数据最终都保存在 etcd 中。

如果把 API Server 理解成总前台,那 etcd 就更像“核心账本”。没有 etcd,整个集群状态就无从持久化。

3. Scheduler

Scheduler 负责调度。它会根据节点资源、调度约束、亲和性、污点容忍等条件,决定新创建的 Pod 应该运行到哪台 Node 上。

所以当你看到一个 Pod 从 Pending 变成 Running,背后就有 Scheduler 在发挥作用。

4. Controller Manager

Controller Manager 负责持续比较“期望状态”和“实际状态”是否一致。如果你希望某个 Deployment 永远保持 3 个副本,而实际上只剩 2 个,控制器就会继续拉起新的 Pod,直到状态恢复。

这也是 Kubernetes 能实现自愈能力的关键原因。

图1:Kubernetes集群基础架构示意图

图1:Kubernetes集群基础架构示意图

四、Node在Kubernetes里负责什么

Node 是集群中的工作节点,可以是虚拟机,也可以是物理机。应用容器最终不会运行在 Master 上,而是运行在这些工作节点上。

一个 Node 通常会包含以下关键组件:

1. kubelet

kubelet 是节点上的核心代理进程。它负责与控制平面通信,并确保这个节点上运行的 Pod 与控制平面下发的期望状态一致。

比如控制面要求这个节点启动一个 Pod,kubelet 就会去调用容器运行时把容器真正拉起来。

2. Container Runtime

Container Runtime 负责真正运行容器,比如 containerd、CRI-O 等。它接收 kubelet 的指令,完成镜像拉取、容器启动、停止等动作。

3. kube-proxy

kube-proxy 负责节点上的服务网络转发规则。它会根据 Service 的定义,在节点上维护网络访问规则,让流量能够被正确转发到后端 Pod。

所以 Node 的本质职责可以概括为一句话:

控制平面负责决策,Node 负责把容器真正跑起来。

五、Pod在Kubernetes架构里是什么角色

Pod 是 Kubernetes 中最小的部署单元,也是业务应用最直接的承载对象。

很多初学者容易把 Pod 理解成“容器”,其实更准确地说,Pod 是容器的运行载体。一个 Pod 里可以运行一个或多个紧密协作的容器,它们共享网络命名空间和存储卷。

大多数业务场景中,一个 Pod 往往对应一个主业务容器。

Pod 的关键作用包括:

  • 承载实际业务进程
  • 作为调度单位被分配到某个 Node
  • 作为 Service 的后端目标对象
  • 被 Deployment、StatefulSet 等更高层对象统一管理

所以你可以把 Pod 看成 Kubernetes 架构里最基础的“应用执行单元”。

图2:Kubernetes中Pod与Service通信示意图

图2:Kubernetes中Pod与Service通信示意图

六、Service在Kubernetes架构里负责什么

Service 是 Kubernetes 提供的稳定访问抽象。它解决的问题是:Pod 是动态变化的,IP 会变、实例数量会变、节点会变,如果直接访问 Pod,业务调用关系会非常不稳定。

Service 的作用就是为一组符合标签选择器的 Pod 提供一个固定访问入口,并把流量分发到后端实例。

它的重要价值包括:

  • 给动态变化的 Pod 提供稳定访问地址
  • 做简单的服务发现和流量转发
  • 让前端或调用方不用感知后端实例变化

在微服务架构里,Service 是非常核心的基础能力。

七、Master、Node、Pod、Service之间是怎么协同的

如果把整个流程串起来,大致可以这样理解:

  1. 用户通过 API Server 提交一个 Deployment
  2. 控制平面把资源状态写入 etcd
  3. Scheduler 决定 Pod 应该调度到哪台 Node
  4. 对应 Node 上的 kubelet 调用容器运行时拉起容器
  5. Pod 成功运行后,Service 把流量稳定转发到这些 Pod
  6. Controller 持续检查副本数和运行状态,异常时自动纠偏

这其实就是 Kubernetes 架构的核心运行逻辑:

  • API Server 负责统一入口
  • etcd 负责保存状态
  • Scheduler 负责分配位置
  • Controller 负责持续纠偏
  • Node 负责执行
  • Pod 负责运行应用
  • Service 负责暴露访问能力

八、为什么Kubernetes架构适合大规模应用管理

Kubernetes 架构之所以强大,是因为它把分布式应用管理拆成了一套职责清晰的系统:

  • 控制和执行分离
  • 期望状态和实际状态持续校验
  • 应用运行和服务暴露标准化
  • 节点、工作负载、流量管理解耦

这种设计使它天然适合:

  • 微服务应用部署
  • 高可用服务治理
  • 弹性扩缩容
  • 自动化运维
  • 平台工程与内部开发平台建设

对于企业来说,这不只是一个“部署工具”,而是现代应用平台的基础设施底座。

九、学习Kubernetes架构时应该先抓住什么

如果你刚开始学 Kubernetes,不建议一开始陷入过多组件细节。更推荐先抓住下面这个最小认知框架:

  • Control Plane:负责管理和决策
  • Node:负责执行和运行容器
  • Pod:最小部署单元
  • Service:稳定访问入口

只要先把这四层关系理顺,再往下看调度、网络、存储、安全、控制器机制,就会容易很多。

结语

Kubernetes架构的核心,不在于记住多少组件名称,而在于理解这套系统如何把“应用应该怎样运行”转化成“应用真的在集群里稳定运行”。Master、Node、Pod、Service 分别承担的是控制、执行、承载和暴露四种关键职责。把这几个角色理解清楚,Kubernetes 就不再是一堆抽象术语,而会变成一套有逻辑、有层次的现代应用平台架构。

转载请注明出处:https://www.cloudnative-tech.com/cloud-native-tech/kubernetes-containers/kubernetes-basics/6138.html

(1)
上一篇 9小时前
下一篇 7小时前

相关推荐

  • Kubernetes Pod是什么?生命周期、重启策略与常见状态说明

    Kubernetes Pod是什么,是学习 K8s 时最基础也最重要的问题之一。很多初学者会把 Pod 直接理解成容器,但更准确地说,Pod 是 Kubernetes 中最小的部署和调度单元,容器运行在 Pod 里面。理解 Pod 的意义,不只是为了认识一个资源对象,而是为了理解 Kubernetes 如何把应用放到节点上运行、如何管理生命周期,以及 Ser…

    7小时前
    0
  • Kubernetes和Docker有什么区别?容器运行与编排关系讲清楚

    ubernetes和Docker有什么区别,是云原生入门阶段最容易混淆的问题之一。很多人第一次接触容器技术时,会把 Kubernetes 和 Docker 当成同一类工具,甚至以为两者是相互替代关系。实际上,它们的定位完全不同:Docker 更关注容器的构建与运行,Kubernetes 更关注容器在集群中的编排与管理。理解这一点,才能真正看懂容器平台为什么会…

    9小时前
    0
  • Kubernetes Namespace是什么?资源隔离与多团队管理方式解析

    Kubernetes Namespace是什么,是团队开始在同一个集群中部署多个应用时必须理解的基础概念。Namespace 通常被翻译为命名空间,它可以把集群中的资源按逻辑边界进行隔离,常用于区分环境、团队、项目或业务系统。理解 Namespace,不只是为了给资源分组,更是为了后续做好权限控制、资源配额、环境管理和多团队协作。

    7小时前
    0
  • Kubernetes Service是什么?ClusterIP、NodePort、LoadBalancer区别讲清楚

    Kubernetes Service是什么,是理解 Kubernetes 服务访问和微服务通信时必须掌握的基础概念。Pod 是动态的,可能因为扩缩容、发布、故障恢复而不断创建和销毁,如果应用直接访问 Pod IP,调用关系会非常不稳定。Service 的作用,就是为一组 Pod 提供稳定访问入口,让调用方不需要关心后端 Pod 如何变化。 一、Kuberne…

    7小时前
    0
  • Kubernetes是什么?核心概念、架构与应用场景详解

    Kubernetes 是目前最常见的容器编排平台之一。对于刚接触云原生的开发者来说,理解 Kubernetes 是什么,核心并不在于先记住多少组件名称,而是先理解它解决了什么问题:当应用被拆成越来越多的容器之后,如何统一完成部署、调度、扩缩容、服务发现、滚动更新和故障恢复。Kubernetes 的价值,就在于把这些复杂而重复的操作标准化、平台化。 一、Kub…

    1天前
    0