全书目录

第十一篇:Kubernetes 完全指南 —— 星际舰队宇宙

第二章:Cluster / Node / Pod —— 舰队、母舰、任务舱

1 分钟 435 字 第 225 / 962 个阅读单元

先把三个最基础的层级吃透。

text
Kubernetes 集群(Cluster)
├── 控制平面(指挥部)
│   ├── API Server
│   ├── Scheduler
│   ├── Controller Manager
│   └── etcd
└── 工作节点(Nodes)
    ├── Node A
    │   ├── Pod 1
    │   └── Pod 2
    └── Node B
        ├── Pod 3
        └── Pod 4

Cluster:整支舰队。
Node:一艘真正跑任务的母舰,可以是物理机,也可以是虚拟机。
Pod:Kubernetes 里最小的可部署计算单元,不是容器本身,而是容器的运行舱室

可以这样记:

  • 容器像船员
  • Pod 像任务舱
  • Node 像母舰
  • Cluster 像整支舰队

一个 Pod 里通常放一个主容器;也可以放多个强耦合容器,它们共享网络和存储。

text
Pod
├── Container A(主业务)
└── Container B(辅助 sidecar / agent)

Pod 的关键特征:

  • 同一个 Pod 内的容器共享网络命名空间,可以用 localhost 互相访问
  • 同一个 Pod 内的容器可以共享卷
  • Pod 是短暂的、可替换的
  • Kubernetes 管的是 Pod,不直接管单个容器

这就是为什么很多新手第一反应会错:

“我不是在管 Docker 容器吗?”

不完全是。
Kubernetes 的基本作战单位是 Pod。

一个最简单的 Pod:

yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx:1.27
      ports:
        - containerPort: 80

创建它:

bash
kubectl apply -f pod.yaml
kubectl get pods -o wide

但这里先记一句最重要的话:

生产里你通常不直接创建 Pod,而是让更高层对象去管它。