11·Pod 基础入门

Pod 是什么

kubernetespodconcept

Pod 是什么

学习目标

  1. 理解 Pod 在 Kubernetes 中的定位
  2. 理解 Pod 与容器的关系
  3. 了解为什么需要 Pod 而不是直接管理容器

核心概念

一句话解释

Pod 是 Kubernetes 中最小的可部署单元,它封装了一个或多个紧密关联的容器。

为什么需要 Pod

Docker 方式:
┌─────────────────────────────────────┐
│  容器 1 (Web)  容器 2 (Log Agent)   │
│  共享网络?共享存储?调度在一起?    │
│  手动管理,容易出错                  │
└─────────────────────────────────────┘

Kubernetes Pod 方式:
┌─────────────────────────────────────┐
│            Pod                      │
│  ┌─────────────┐ ┌─────────────┐   │
│  │ 容器 1      │ │ 容器 2      │   │
│  │ (Web)       │ │ (Log Agent) │   │
│  └─────────────┘ └─────────────┘   │
│  共享网络命名空间                    │
│  共享存储卷                          │
│  一起调度到同一个节点                │
└─────────────────────────────────────┘

Pod 的核心特性

特性说明
最小部署单元不是容器,而是包含容器的抽象
共享网络同一 Pod 内容器共享 IP 和端口空间
共享存储可以挂载相同的 Volume
原子调度Pod 整体调度,不会拆分
短暂存在Pod 是临时的,随时可能被替换

Pod vs 容器

方面容器Pod
粒度单个进程一个或多个容器
网络独立网络命名空间共享网络命名空间
存储独立文件系统可共享 Volume
调度不可调度可被 K8s 调度
生命周期独立容器共享生命周期

什么时候用多容器 Pod

典型场景:

1. Sidecar 模式
   主容器 + 辅助容器(日志收集、监控)

2. Ambassador 模式
   主容器 + 代理容器(网络代理)

3. Adapter 模式
   主容器 + 适配容器(格式转换)

原则:只有紧密关联的容器才放在同一个 Pod

Pod 的网络模型

┌────────────────────────────────────────┐
│  Node                                   │
│  ┌──────────────────────────────────┐  │
│  │  Pod (IP: 10.244.1.5)            │  │
│  │  ┌─────────┐  ┌─────────┐       │  │
│  │  │ 容器 A  │  │ 容器 B  │       │  │
│  │  │ :8080   │  │ :9090   │       │  │
│  │  └─────────┘  └─────────┘       │  │
│  │  localhost:8080 → 容器 A         │  │
│  │  localhost:9090 → 容器 B         │  │
│  └──────────────────────────────────┘  │
└────────────────────────────────────────┘

同一 Pod 内的容器可以通过 localhost 互相访问

实践练习

练习 1:理解概念

回答以下问题:

  1. Pod 和容器的关系是什么?
  2. 为什么 Kubernetes 选择 Pod 作为最小部署单元,而不是容器?
  3. 列举一个适合使用多容器 Pod 的场景。

练习 2:架构图画出

画出以下关系:

  • Node → Pod → Container
  • 标出 Pod 的共享网络和共享存储

练习 3:判断场景

判断以下场景是否适合放在同一个 Pod:

  1. Web 服务器 + 日志收集器
  2. Web 服务器 + 数据库
  3. 前端 + 后端 API

常见误解

1. Pod 不是容器

错误:Pod 就是一个容器
正确:Pod 是容器的封装,可以包含多个容器

Pod = 共享环境 + 一个或多个容器

2. Pod 是短暂的

错误:Pod 会一直存在
正确:Pod 随时可能被删除、重建

不要依赖 Pod 的 IP 或状态
使用 Service 来访问 Pod

小结

要点说明
PodKubernetes 最小可部署单元
核心价值封装紧密关联的容器
网络同一 Pod 内容器共享网络
存储可共享 Volume
调度原子调度,整体分配到节点
生命周期短暂,不应依赖 Pod 状态

练习编辑器

bash
Loading...

继续学习

完成本课后,建议继续学习下一课「Pod 生命周期」 以巩固所学知识。