首页 / Kubernetes (k8s) 入门教程 / 核心概念扫盲:Pod / Node / Cluster / Namespace

Kubernetes (k8s) 入门教程

核心概念扫盲:Pod / Node / Cluster / Namespace

本教程共 65 篇 · 第 3 篇 · 更新于 2026-08-14 · 约 13 分钟阅读

KubernetesPodNodeClusterNamespace核心概念

本节目标:用生活化的比喻讲清 k8s 里四个最基础的对象,以及谁管谁、谁包含谁的层级关系。

学 k8s 最怕一上来被一堆名词砸晕。这一章只讲四个词:Pod、Node、Cluster、Namespace。把它们的关系理顺,后面所有章节都好懂了。

3-1 先上一个总览比喻

把 k8s 想象成一座工厂:

  • Cluster(集群) 是整座工厂园区。
  • Node(节点) 是园区里的一栋栋厂房。
  • Pod(容器组) 是厂房里干活的一条条流水线(每条线跑着一个或多个工人/容器)。
  • Namespace(命名空间) 是园区里的分区,比如”生产区""测试区”,互不干扰。

记住这个画面,下面逐个拆。

3-2 Pod:k8s 调度的最小单位

Pod(容器组)是 k8s 里最重要、最基础的概念。它是 k8s 调度应用的最小单位,不是一个容器,而是一组紧密协作的容器。

为什么不是直接调度”容器”?因为现实中,有些容器天生要绑在一起。比如一个跑业务的容器,旁边配一个负责同步日志的”小跟班”容器。它们要共享网络和存储,最好一起被调度、一起被删除。Pod 就是为这种”共生关系”设计的。

Note

一个 Pod 里通常只有一个主容器。多容器的场景(sidecar 模式)后面章节会专门讲。新手先理解”一个 Pod ≈ 一个应用实例”就够了。

Pod 里的容器共享同一个网络命名空间。也就是说,它们用 localhost 就能互相访问,对外则共用一个 IP。这点和”两个独立容器”完全不同。

Tip

你可以把 Pod 理解成一个”小机器人”。不同类型的业务,需要不同类型的小机器人去执行。k8s 里控制这些机器人的对象叫”控制器”,比如 Deployment、StatefulSet,后面会逐一登场。

3-3 Node:真正干活的机器

Node(节点)就是一台机器——可以是物理服务器,也可以是虚拟机。前面说的”厂房”,就是它。

每个 Node 上跑着一些必要的组件(kubelet、容器运行时、kube-proxy,后面章节细讲),它们负责把 Pod 真正运行起来。一个集群里通常有多个 Node,分担压力。

Warning

Node 早期在 Kubernetes 里叫过 Minion,后来才统一叫 Node。你在老资料里看到 Minion,知道是同一个东西就行。

Node 有容量概念:每台机器有多少 CPU、多少内存,k8s 都登记在册。调度器往 Node 上放 Pod 时,会先看这台机器还剩多少资源,放得下才放。

3-4 Cluster:一群 Node 的集合

Cluster(集群)就是一组 Node 加上控制它们的”大脑”(控制平面)组成的整体。你跟 k8s 打交道,面对的就是这个集群,而不是某一台机器。

集群的好处在哪儿?你提交一个”要 3 个 Pod”的需求,k8s 自己决定这 3 个 Pod 落在哪几台 Node 上。某台 Node 坏了,它把 Pod 挪到别的 Node。对你来说,集群是一整块”计算资源池”,你不用关心底层哪台机器在跑。

Note

在生产环境,控制平面通常跑在多台机器上做高可用。而在你本地用 minikube 学习时,一个集群里只有一台 Node,既当大脑又当厂房,这就够了。

3-5 Namespace:给集群分房间

Namespace(命名空间)是集群内部的”虚拟分区”。它不对应物理机器,而是一种逻辑隔离。

为什么需要它?想象一个集群被多个团队共用。A 团队的应用叫 web,B 团队的应用也叫 web,名字撞了怎么办?放到不同的 Namespace 里就互不影响了。资源配额、权限也能按 Namespace 划界。

集群一创建,默认就有好几个 Namespace,其中最重要的是这两个:

  • default:你不指定时,资源默认落在这里。
  • kube-system:k8s 自己运行所需的系统组件都在这儿,别手痒去动它。
Tip

新手练习时,所有东西都扔在 default 里完全没问题。等团队大了、环境多了(dev/test/prod),再去用 Namespace 隔离。

3-6 它们的关系串起来

把四个概念排个层级:

Cluster(集群)
 ├── control plane(大脑,管调度)
 └── Node(节点,厂房)× N
      └── Pod(容器组,流水线)× 若干
           └── Container(容器,工人)× 1 或多个
Cluster 内部再用 Namespace 做逻辑分区(如 default / kube-system)

就是你提交需求给集群,集群派大脑决定,把 Pod 摆到合适的 Node 上,Pod 里跑着容器。Namespace 只是给这堆东西分门别类。

3-7 一个常见误区

很多人以为”Pod 就是容器,多起几个 Pod 就是多起几个容器”,这说法不算错,但漏了关键:Pod 是调度、网络、存储的边界。比如”给 Pod 配 2 核 1G 资源”,实际是约束这个 Pod 里所有容器的总和。理解 Pod 这个边界,对后面学资源限制、网络、存储都至关重要。

Warning

不要把有状态数据(数据库文件等)存在 Pod 里。Pod 被重建时,里面的内容就没了。持久数据要挂存储卷,那是后面配置与存储章节的事。

3-8 动手前先有个印象

你现在还不用敲命令。但请记住这四个词的英文名,因为 k8s 里它们首字母都大写:Pod、Node、Cluster、Namespace。后续命令和 YAML 里随处可见。

3-9 动手观察一下(不用真敲也行)

等你按第 7、8 章搭好环境后,就可以用命令印证上面这些概念。比如:

kubectl get nodes          # 看集群里有几台 Node
kubectl get namespaces     # 看有哪些 Namespace
kubectl get pods -A        # 跨命名空间看所有 Pod

你会看到 kube-system 这个命名空间下,跑着一堆系统自己的 Pod(DNS、代理等)。而你自己 kubectl create deployment 出来的 Pod,默认在 default 里。这正好印证了”Namespace 是逻辑分区”这句话。

Tip

新手最容易混淆的是”Pod 和容器”。记住:你 get pods 看到的是 Pod,点进去才是一个或多个容器。k8s 调度、重启、分配 IP 的单位都是 Pod,不是单个容器。这个视角切换过来,后面很多设计就顺了。

小结

四个词再念一遍:Cluster 是园区,Node 是厂房,Pod 是流水线(跑容器),Namespace 是分区。Pod 是调度和网络的最小边界,Node 有资源上限,Namespace 做逻辑隔离。理解了谁包含谁、谁调度谁,下一章,我们跳出单个对象,看看整个 k8s 长什么样——控制平面和工作节点两大块,是怎么配合起来的。