什么是 Kubernetes(K8s 容器总指挥)?
如果 Docker 造出了一个个标准的海运集装箱;那么 Kubernetes (K8s) 则是超级自动化集装箱码头的“总调度指挥官” —— 负责指挥成千上万艘货轮、自动搬运货物、挂掉自动重启(自愈),并在早晚高峰自动调来更多船只(弹性扩缩容)!
半夜宕机打电话,手动重启敲命令
当业务扩大到几千个 Docker 容器时,人工不可能记住每个容器在哪个 IP、哪台物理机坏了、哪个服务需要扩容,运维工程师随时处于崩溃边缘!
- ❌ 无自动自愈:容器死掉必须人工干预恢复
- ❌ 流量负载混乱:无法动态路由网络流量,升级必停机断网
声明期望状态,系统自主闭环搞定
你只需声明“我要 3 个 Web 副本”。某个节点如果烧了,K8s 0.5 秒内自动在另一台机器重新拉起;早高峰流量涌入,自动横向扩容至 10 个副本!
- ✨ 自愈机制(Self-Healing):节点故障自动漂移重新调度
- ✨ 滚动更新(Rolling Update):零停机平滑升级版本,随时回滚
拆解 K8s 帝国的 4 大核心原子构件
从最小计算单元到服务网络,读懂容器编排精髓
1. Pod 豌豆荚(最小单元)
K8s 调度的最小原子单位。一个 Pod 里可以包含一个或多个紧密协作的 Docker 容器,共享相同的网络 IP 与磁盘存储。
2. Deployment 部署控制器
负责管理 Pod 副本数量与生命周期。保证“期望状态”始终等于“现实状态”,负责无死角的滚动发布与回滚。
3. Service 负载均衡与网络
给动态变动 IP 的 Pod 们提供一个永恒不变的虚拟统一入口 IP,自动将外界请求均匀分发给背后健康的 Pod 们。
4. Control Plane 大脑中枢
由 API Server(接待前台)、etcd(真理数据库)、Scheduler(决策调度员)与 Controller Manager(监管管家)组成。
🕹️ K8s 集群自愈与弹性扩缩容演练台
模拟一个包含 2 台物理 Node 的 K8s 集群,观察声明式控制器如何秒级自愈与扩容:
DESIRED: 3 | CURRENT: 3 | UP-TO-DATE: 3 | AVAILABLE: 3
状态:集群健康,流量在 2 台节点间完美分发!
从 Borg 绝密系统到开源霸主
Google 内部十几年间一直用名为 Borg 的神秘系统调度其全球几十亿个容器任务。
2014 年 Google 将 Borg 的设计精髓用 Go 语言重写并开源,正是如今一统天下的 Kubernetes!
KubeRay 与万卡大模型训练
现代 ChatGPT 与 DeepSeek 训练依赖数万张英伟达 H100 显卡。
底层正是由 Kubernetes + KubeRay / Slurm 协同调度,负责 GPU 拓扑感知、断点续训(Checkpoint)与网络故障自愈。
命令式 vs 声明式
传统命令式是“你去把那台机器的第 3 个进程杀掉再启动”;
而 K8s 的声明式哲学是“我不管你怎么做,反正系统里必须时刻活着 3 个副本” —— 赋予了云原生无与伦比的自愈抗脆弱性。