部署与云原生
校招考察频度:☆ 中频(原理扩展·工程加分项) 复习主线:现代软件部署已全面步入“不可变基础设施”与声明式容器编排时代。校招面试核心聚焦点:Docker 底层机制(Linux Namespace 隔离、Cgroups 资源限制、UnionFS 分层存储与构建优化)、K8s 核心原语(Pod、Deployment 控制器、Service 虚拟 IP 与 kube-proxy)、三大健康检查探针(Liveness/Readiness/Startup)、常见发布策略(滚动更新 vs 蓝绿发布 vs 金丝雀灰度发布)。
部署演进的主线:从“在一台机器上手动跑进程”到“声明式地自动化调度一群容器”。
分类考频地图
| 专题 | 核心页面 | 校招考频星级 | 重点考查要点 |
|---|---|---|---|
| Docker 底层原理 | Docker 核心原理 | ★ 高频(容器底座) | 容器与虚拟机对比(进程级隔离 vs 硬件虚拟化)、Namespace 六大隔离维度、Cgroups 资源配额、镜像多阶段构建(Multi-stage) |
| Kubernetes 核心原语 | Kubernetes 核心 | ★ 高频(调度核心) | 声明式 API 与控制器对账模式、Pod 共享 Network/IPC Namespace、Deployment 滚动更新、Service ClusterIP 负载均衡 |
| K8s 进阶与高可用 | Kubernetes 进阶 | ☆ 中频(进阶实战) | HPA 水平自动扩缩容指标、Ingress 七层路由网关、StatefulSet 有状态副本集与 PV/PVC 存储卷挂载 |
| 现代化发布策略 | 发布策略 | ☆ 中频(持续交付) | 滚动更新(Rolling Update)零停机配置、蓝绿部署(Blue-Green)快速回滚、金丝雀灰度发布(Canary)按流量权重切流 |
| CI/CD 交付流水线 | CI/CD 自动化构建 | ☆ 中频(流水线) | 持续集成、代码门禁与自动化测试、GitOps 声明式交付模型、容器镜像版本语义化标签 |
部署演进
| 时代 | 形态 | 问题 |
|---|---|---|
| 物理机 | 一台机器一个应用 | 资源浪费、环境隔离 |
| 虚拟机 | 虚机隔离 | 重(GB 级 OS) |
| 容器 | 进程级隔离 | 轻、一致,编排难 |
| 编排(K8s) | 声明式管理容器 | 解决规模化 |
云原生是什么
- CNCF 定义:容器化 + 微服务 + 声明式 API + 不可变基础设施
- 核心词:容器(打包标准)、编排(自动调度)、不可变(不修只换)、声明式(要什么状态,不要怎么做)
云原生三件套: 容器 → 编排 → 交付
本分类地图
- Docker:镜像、容器、网络(基石)
- K8s 核心:Pod、Deployment、Service(主模型)
- K8s 进阶:HPA、Ingress、存储、StatefulSet
- CI/CD:流水线、GitOps
- 发布策略:蓝绿、金丝雀、滚动
面试定位
- 后端岗考 K8s 频率逐年上升:Pod/Deployment/Service 三件套必答
- 加分:探针、HPA、发布策略(能讲清原理 + 场景)
- 部署题常和系统设计结合(水平扩展、无状态,见系统设计篇)
面试追问
- 容器和虚拟机? 容器进程级隔离(共享内核,MB 级),虚拟机硬件级隔离(GB 级)。容器快但隔离弱
- 云原生核心? 容器化 + 编排 + 声明式 + 不可变。K8s 是事实标准
- 不可变基础设施? 不修运行中的实例,重新构建替换。可复现、可回滚
- 声明式和命令式? 声明”要什么状态”(K8s 对账),命令式”执行什么操作”。声明式是云原生核心
- 为什么要 K8s? 单机 Docker 管不过来:调度、自愈、扩缩、服务发现。规模化编排