03 - 一张图看懂 K8s 的组成
上一章知道了 K8s 是”总指挥”。这一章我们退一步看全景:一套 K8s 系统,到底是由哪些东西组成的?
说明:这一章只讲”有哪些角色、各自干嘛”,不深入内部组件细节。建立起这张图的心智模型就够了。
核心结构:一个大脑 + 一群干活的机器
一套 K8s,行话叫一个 集群(Cluster)。它由两类角色组成:
┌─────────────────────────────┐
│ 控制平面 / 大脑 │
│ (Control Plane / Master) │ ← 发号施令、做决策
└──────────────┬──────────────┘
│ 指挥
┌───────────────┬───────┴───────┬───────────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Node │ │ Node │ │ Node │ │ Node │ ← 真正干活、跑容器的机器
│(工作机器)│ │(工作机器)│ │(工作机器)│ │(工作机器)│
└─────────┘ └─────────┘ └─────────┘ └─────────┘
1. 控制平面(Control Plane / Master)—— 大脑
它是整个集群的”指挥中心”,负责做决策、下命令,但自己不干具体跑容器的活:
- 记录整个集群的状态(有多少机器、跑了哪些东西、健康不健康)
- 接收你的指令(“我要 3 个副本”),并想办法让现实达成它
- 决定某个容器该调度到哪台机器上
- 发现有容器挂了,指挥重新拉起
你可以把它想成码头的调度指挥室:不亲自搬箱子,但所有搬箱子的决策都从这里发出。
2. Node(节点)—— 干活的机器
Node 就是真正跑你容器的那一台台机器(物理机或云服务器):
- 听控制平面的指挥
- 在自己身上把容器真正跑起来
- 定时向大脑汇报:“我还活着,我身上这些容器都正常”
码头里一个个装卸货物的泊位 + 起重机,就是 Node。真正的箱子都在这里被摆放和处理。
3. 你(用户)在哪?
你不直接登录每台机器操作,而是只跟”大脑”对话:
- 你用一个叫
kubectl的命令行工具(或云控制台) - 把你的诉求告诉控制平面(比如”帮我跑一个 3 副本的 AI 服务”)
- 剩下的调度、分配、维持,全交给 K8s 自动完成
[配图:用户拿着一张”需求单”递给中间的指挥室(大脑),指挥室再把任务分派给下面一排装卸泊位(Node),用户全程不碰泊位]
把整个协作流程串起来
用一句话讲清楚它们怎么配合:
你 → 告诉大脑”我想要什么” → 大脑记下来并决定放哪台机器 → 对应的 Node 把容器跑起来 → Node 持续汇报状态 → 大脑发现和你要的不一致(比如挂了一个),就自动纠正。
这个”持续对比理想与现实、自动纠偏”的循环,是 K8s 一切自动化的核心。下一章讲完核心概念后,第 05 章会专门讲这个思想(叫声明式)。
不用记的东西(放心跳过)
你可能在别的资料里见过一堆组件名词:etcd、API Server、Scheduler、Controller Manager、kubelet、kube-proxy……
入门阶段这些统统不用记。 它们都是”大脑”和”Node”内部的零件。你只要知道:有个大脑负责决策、有一群 Node 负责干活,就足够看懂 90% 的 K8s 讨论了。真正用云托管 K8s 时(第 06 章),大脑那部分还是云厂商帮你管的,你更不用操心。
小结
- 一套 K8s = 一个集群(Cluster)。
- 集群 = 控制平面(大脑,负责决策) + 一群 Node(干活的机器,负责跑容器)。
- 你只跟大脑对话(用
kubectl或云控制台),不直接碰每台机器。 - 内部那一堆组件名词,入门阶段完全不用记。
有了这张全景图,下一章我们进入重点——你必须认识的几个核心概念:Pod、Deployment、Service、Ingress。
上一章 ← 02 - K8s 是什么 | 下一章 → 04 - 必须认识的几个核心概念