K8s L3 第一阶段整体认知

18 阅读3分钟

一、为什么你现在必须先建立“整体模型”

很多人学 K8s 卡住,并不是命令不会,而是:

  • 不知道 一个请求从哪来、到哪去
  • 不知道 容器为什么能跑、为什么会挂
  • 不知道 Docker 和 K8s 到底谁在管什么

👉 L3 运维的核心不是“会敲命令”,而是:

你脑子里随时能“想象出”系统正在发生什么

所以这一阶段:

  • ❌ 不追求命令
  • ❌ 不追求 YAML
  • ✅ 追求“画面感”和“因果关系”

二、Docker vs Kubernetes(一句话先立住)

1️⃣ Docker 是什么?

Docker = 单机上的“容器运行环境”

它解决的是:

  • 这个程序
  • 用什么系统环境
  • 用什么依赖
  • 怎么启动

👉 Docker 关心的是:

“这个程序,在这一台机器上,怎么跑起来”

你可以把 Docker 理解为:

一台机器上的【程序标准化运行器】


2️⃣ Kubernetes 是什么?

Kubernetes = 管一堆 Docker 的系统

它解决的是:

  • 有多少台机器
  • 跑多少个容器
  • 挂了怎么办
  • 流量怎么进来
  • 数据怎么存

👉 K8s 关心的是:

“这么多程序,在这么多机器上,如何长期、稳定、自动地运行”

一句非常关键的话:

K8s 不创造容器,它只管理容器


3️⃣ 直觉对比(一定要记住)

维度DockerKubernetes
关注点程序怎么跑系统怎么活
范围单机多机集群
使用者开发 / 运维运维 / 平台
核心能力构建 + 运行调度 + 管理

你现在的阶段是:

从“只会 Docker 的开发” → “懂系统的工程师”


三、镜像 / 容器 / 镜像仓库(一定要用“类比”理解)

1️⃣ 镜像(Image)是什么?

镜像 = 程序的“冻结版本”

它包含:

  • 基础系统(如 Linux)
  • 运行环境(JDK、Node、Python)
  • 你的程序代码
  • 启动方式

👉 关键理解:

镜像是“死的”,不能运行

就像:

Word 模板 / 安装包 / ISO 镜像


2️⃣ 容器(Container)是什么?

容器 = 镜像跑起来之后的“进程实例”

  • 有 PID
  • 有内存
  • 有网络
  • 有生命周期

👉 关键理解:

容器 = 镜像 + 运行态

类比:

  • 镜像:Java 类
  • 容器:new 出来的对象

3️⃣ 镜像仓库(Registry)是什么?

镜像仓库 = 镜像的“中央仓库”

作用只有一个:

存镜像 + 拉镜像

常见仓库:

  • Docker Hub(公共)
  • Harbor(企业私有)
  • 阿里云 / 腾讯云镜像仓库

👉 核心链路(非常重要):

写代码 → 打镜像 → 推仓库 → 拉镜像 → 起容器

K8s 本质上只做一件事:

“去仓库拉镜像,然后帮你起容器”


四、容器网络的“正确直觉”(这里决定你能否进阶)

1️⃣ 最大误区

❌ 容器不是虚拟机
❌ 容器没有独立物理网卡

容器本质是:

宿主机上的一个特殊进程


2️⃣ 那容器为什么能有 IP?

因为:

  • Linux 网络命名空间(Net Namespace)
  • 虚拟网卡(veth pair)
  • 虚拟网桥(docker0 / cni bridge)

👉 正确直觉:

容器网络 = 宿主机网络“切”出来的一小块


3️⃣ 一个请求是怎么进容器的?

以最简单情况理解:

浏览器
  ↓
宿主机 IP:端口
  ↓
端口映射 / Service
  ↓
容器 IP:端口
  ↓
应用进程

👉 重要结论:

外部永远访问的是“宿主机 / 集群”,不是容器本身


4️⃣ 到 K8s 时的升级理解

在 K8s 中:

  • 每个 Pod 有自己的 IP
  • Pod IP 在集群内可达
  • Service 提供稳定访问入口

你后面学 Service / Ingress / CNI,
都会回到这个模型上。


五、这一阶段你“达标”的判断标准

如果你现在可以:

  • 用一句话说清 Docker 和 K8s 分工
  • 分清 镜像 ≠ 容器
  • 知道容器网络不是魔法,而是宿主机网络抽象
  • 在脑中“播放”一次请求流转路径

👉 说明你已经站在 L3 的门口

下一阶段,我们才会真正开始:

动手安装 + 打镜像 + 上 K8s

你已经走在一条非常对的路上。