§ 00概述
系列的终点站解决一个积累已久的问题:交付与运行的碎片化。十个服务十种部署方式、测试与生产行为不一致、资源按峰值预留却常年闲置——容器化把这些一次性收进平台:镜像统一交付形态,Kubernetes 统一运行时,弹性伸缩统一容量策略。
容器化的正确动机是标准化与利用率,而不是「别人都有 K8s」。本章数据集给出迁移评估矩阵、集群规格基线、弹性与混部的收益模型,以及到达终点站之后的方向——平台工程:让开发者自助、让平台隐形。
§ 01演进定位
容器化的三笔账:第一笔环境账——镜像把运行时与环境打包,「在我本地是好的」从此成为历史;第二笔资源账——服务从独占虚拟机变成共享集群混部,行业平均利用率从 15% 提升到 40%+;第三笔弹性账——HPA 按指标自动扩缩容,容量从「预留」变成「随动」。
这三笔账都有前提:应用要容器友好(无状态、日志标准输出、配置外部化——恰好是 03 章无状态化的延续),团队要有 K8s 运维能力(或选择云托管 K8s 把控制面交给厂商)。
K8s 不是终点。把镜像、流水线、观测、弹性固化成平台能力,开发者只管代码与声明式清单——这是行业正在收敛的方向:平台工程(Platform Engineering)。
§ 02技术架构
集群形态:生产集群选云托管 K8s(TKE/EKS 类,控制面托管省心),多可用区节点池;测试与生产物理隔离但同版本,配置走 GitOps 仓库管理。
交付链路:代码 → CI 流水线 → 镜像仓库(带版本与扫描)→ GitOps 仓库变更 → 集群滚动更新。发布策略按服务重要性分级:金丝雀(09 章延续)、蓝绿、或滚动。
容量与弹性:全部服务声明 requests/limits,HPA 按 CPU 与自定义指标(QPS/队列深度)伸缩,Cluster Autoscaler 兜底节点扩容;核心服务配置 PDB(中断预算)保证节点维护时的可用性。资源利用率目标 40%+,混部与潮汐调度进一步提效。
§ 03实施路径
第一阶段(1-2 周)标准化先行:Dockerfile 模板与镜像规范、应用容器友好改造清单(无状态/日志/配置/优雅停机)、镜像仓库与扫描就位。
第二阶段(2-3 周)集群与迁移:托管集群搭建、节点池与网络规划、边缘服务先迁(网关、BFF),核心服务按「先灰度后全量」逐个迁移,每个服务迁移前完成压测基线。
第三阶段(2 周)弹性与平台化:HPA 规则按压测数据校准、GitOps 仓库与发布流程收口、利用率看板与成本分摊上线、应急预案(节点故障驱逐、集群级故障演练)演练。总周期 5-7 周。
§ 04客户价值与适用判断
该上:服务 > 15 个、资源利用率 < 20%、交付流程碎片化、或弹性需求明显(大促、潮汐流量)。
不该上:服务少而稳定(< 10 个)、团队无人愿意投入 K8s 学习曲线。托管与 Serverless 容器(按量付费的容器实例)是折中方案——把复杂度交给云。
终点之后:容器化不是架构演进的终点,而是「平台化运营」的起点。下一程是平台工程、多云与成本治理——但那是另一套白皮书的故事。
§ D01组件与选型清单
DATA容器化云平台 · 标准组件栈平台化基线
| 层级 | 组件 | 选型建议 | 职责与要点 |
|---|
| 集群 | 云托管 K8s(TKE 类) | 多 AZ 节点池 | 控制面托管,节点按需混合计费 |
| 交付形态 | Docker 镜像 | 统一模板 + 漏洞扫描 | 镜像即交付物,版本与制品可追溯 |
| 配置管理 | GitOps 仓库 | 声明式清单 | 环境差异即 Git 差异,变更有 PR 评审 |
| 弹性 | HPA + Cluster Autoscaler | CPU + 自定义指标 | 扩容 < 2 分钟,缩容防抖 5 分钟 |
| 可用性 | PDB + 反亲和 | 核心服务跨 AZ 打散 | 节点维护与故障时保住最小副本数 |
| 观测 | 复用 09 章三件套 | 容器维度增强 | Pod/容器级指标与事件接入告警 |
| 成本治理 | 利用率看板 + 分摊 | 按命名空间分摊 | 资源账单到团队,利用率目标 40%+ |
requests/limits 的设置是集群稳定性的第一杠杆:过小导致驱逐抖动,过大退化回「按峰值预留」。
§ D02成本测算数据集
DATA成本测算示例(平台化收益模型 · 月度)月度 · CNY
| 项目 | 规格 | 月成本 | 说明 |
|---|
| 集群节点 | 8 台 8C16G 按需 + 包年混合 | ≈ ¥4,800 | 承载原 15+ 服务混部 |
| 迁移前对照 | 15 台独立 VM 4C8G | ≈ ¥6,900 | 利用率 < 20% 的旧世界 |
| 控制面 | 托管 K8s | ≈ ¥150 | 云厂商托管 |
| 镜像仓库 | 企业版 | ≈ ¥100 | 含扫描与加速 |
| 节省 | 混部提效 | -≈ ¥1,950 | 利用率 15% → 45% |
平台化后合计 ≈ ¥5,050 · 较碎片化 VM 时代 -28%
服务数量越多、利用率越低,容器化的节省越显著。小规模(< 10 服务)节省有限,以标准化收益为主。
§ D03关键指标基准
DATA可用性与体验基线SLO 参考
| 指标 | 09 章基线 | 本阶段目标 | 行业良好 |
|---|
| 资源平均利用率 | < 20%(独占 VM) | ≥ 40% | ≥ 55%(混部 + 潮汐) |
| 扩容响应 | 人工 > 30 分钟 | HPA 自动 < 2 分钟 | 预测性弹性 |
| 环境一致性 | 配置漂移偶发 | 镜像 + GitOps 零漂移 | 零漂移 + 漂移自愈 |
| 新服务交付时长 | 天级(环境申请) | < 1 小时(模板自助) | < 10 分钟 |
| 节点故障自愈 | 人工迁移 | 自动驱逐重建 < 5 分钟 | 故障演练常态化 |
利用率提升是容器化最实在的 ROI:50 台 20% 利用率的机器,等价于 17 台 60% 利用率的机器。
§ D04演进触发信号
DATA什么时候必须走向下一阶段任一命中即评估
| 触发信号 | 判定阈值 | 演进方向 |
|---|
| 到达平台化拐点 | 多集群/多云管理需求出现 | 多集群联邦与多云管理 |
| 开发者自助诉求 | 环境申请工单堆积 | 内部开发者平台(IDP) |
| 成本治理复杂化 | 资源账单无法归因到团队 | FinOps 成本分摊体系 |
| 极致弹性场景 | 大促容量按天预留浪费大 | 预测弹性 + 混部深化 |
| 合规与多 region | 出海或行业多地域要求 | 多地域架构与数据合规 |
§ D05上线检查清单
容器友好改造完成无状态、日志标准输出、配置外部化、优雅停机四项逐服务验收
资源声明校准requests/limits 按压测数据设定,偏离 ±50% 的服务复查
GitOps 收口生产变更只走 Git PR,集群手工变更告警并自动漂移修复
弹性演练压测触发 HPA 扩容计时 < 2 分钟,缩容防抖验证无误杀
故障演练节点暴力宕机验证驱逐与自愈,PDB 保护核心服务
成本分摊上线利用率与成本按命名空间出账,团队可见可优化
§ D06高频翻车点
lift-and-shift 直迁把有状态的本地文件、本地会话原样装进容器,「容器化了」但问题原封不动
requests/limits 拍脑袋不压测就设资源声明,生产上要么 OOMKill 要么容量虚高
跳过无状态化以为 K8s 会替你解决状态问题,数据库进容器上生产
GitOps 形同虚设命令行手工改生产,集群与仓库漂移,回滚无从谈起
忽视优雅停机没配 preStop 与就绪探针,每次滚动发布制造一波 5xx
§ D07常见问答
DATA容器化云平台 · 问答数据集4 组
| 问题 | 答案 |
|---|
| 自建 K8s 还是云托管? | 无特殊情况选云托管:控制面的高可用、版本升级、安全补丁是纯运维负担,托管月费千元级远低于一名工程师的分摊。自建只在学习环境有价值。 |
| 存量服务怎么迁最稳? | 「先边缘后核心」:网关、BFF、后台任务先迁练手,核心交易服务最后迁且必须先完成无状态化改造与压测基线,金丝雀灰度逐步放量。 |
| K8s 学习曲线太陡怎么办? | 两条路:托管 + 平台化封装(开发者只写声明式清单,K8s 细节被平台吸收);或先用 Serverless 容器(按量付费免运维节点)过渡,团队成熟后再上集群。 |
| 容器化的 ROI 怎么算? | 三笔账相加:环境一致性减少的故障损失 + 利用率提升的账单节省(通常 25-40%)+ 交付提速的人力节省。服务 < 10 个时前两笔都很小,别为 ROI 上 K8s。 |
§ D8角色分工数据集
DATA角色分工数据集本阶段人员配置
| 角色 | 核心职责 | 投入度 | 备注 |
|---|
| 平台工程 | 集群 · GitOps · 弹性规则 | 100% | 平台所有者 |
| 各服务 Owner | 容器化改造 · 资源声明 | 50% | 清单制推进 |
| FinOps(兼) | 利用率与成本分摊 | 20% | 月度账单复盘 |
| QA | 环境一致性门禁 | 30% | 镜像化测试环境 |
§ D9风险登记册
DATA风险登记册概率 × 影响
| 风险 | 概率 | 影响 | 缓解措施 |
|---|
| Lift-and-shift 直迁带病上容器 | 高 | 严重 | 容器友好四项验收清单逐服务过 |
| 资源声明失真引发驱逐/OOM | 高 | 中 | 压测校准 requests/limits + 定期复查 |
| GitOps 漂移导致回滚失效 | 中 | 严重 | 漂移告警 + 自动恢复 + 禁手工 |
| 镜像高危漏洞入库 | 中 | 中 | 扫描门禁 + 基础镜像定期更新 |
§ D10监控告警清单
DATA监控告警清单阈值即责任
| 监控对象 | 指标 | 告警阈值 | 响应动作 |
|---|
| 集群 | 节点 NotReady | > 0 | 电话 · 驱逐与自愈确认 |
| 工作负载 | Pod 重启次数 | 突增 | 短信 · OOM/探针排查 |
| 弹性 | HPA 扩容耗时 | > 2 分钟 | 工单 · 指标与参数校准 |
| 镜像 | 高危漏洞 | > 0 | 工单 · 门禁阻断 |
| 成本 | 利用率 | < 30% 或 > 65% | 工单 · 容量再平衡 |
§ D12实施时间线
DATA实施时间线周为单位
| 周次 | 里程碑 | 责任角色 | 出口物 |
|---|
| W1-2 | 标准化与镜像规范 | 平台 + Owner | Dockerfile 模板 · 扫描门禁 |
| W3-4 | 集群与边缘迁移 | 平台 | 网关/BFF 先迁 · 压测基线 |
| W5-6 | 核心服务迁移 | 全员 | 灰度逐个迁移 · 弹性规则校准 |
| W7 | 平台化收口 | 平台 + FinOps | GitOps 收口 · 成本分摊上线 |
§ D13SLA 与容灾基线
DATASLA 与容灾基线对内承诺
| 指标 | 基线承诺 | 度量方式 | 未达标处置 |
|---|
| 集群节点故障自愈 | < 5 分钟 | 故障演练实测 | PDB 与反亲和核查 |
| 扩容响应 | < 2 分钟 | 压测计时 | HPA 参数与指标优化 |
| 环境一致性 | 0 漂移 | GitOps 巡检 | 禁手工权限收敛 |
| 资源利用率 | ≥ 40% | 利用率看板 | 混部与潮汐策略 |
§ D14应急预案
DATA应急预案一页纸预案
| 故障场景 | 典型现象 | 处置步骤 | 升级路径 |
|---|
| 节点批量 NotReady | Pod 大量驱逐 | ① 确认 PDB 保护 ② 检查节点池 ③ 云厂商工单 | 多 AZ 同发 → P1 |
| 发布滚动 5xx | 探针/优雅停机问题 | ① 暂停发布 ② 回滚镜像 ③ preStop 修复 | 核心服务 → 立即回滚 |
| OOM 高发 | Pod 反复重启 | ① limits 复核 ② 内存画像 ③ 声明修正 | 影响容量 → 压测复算 |
| 集群级故障 | 控制面/网络异常 | ① 云厂商 P1 ② 灾备集群预案 ③ 变更冻结 | 跨区故障 → 灾难恢复流程 |
§ D15首年成本明细
DATA首年成本明细CNY
| 项目 | 月成本 | 年成本 | 备注 |
|---|
| 集群节点混合计费 | ≈ ¥4,800 | ≈ ¥57,600 | 承载 15+ 服务混部 |
| 迁移前对照(独占 VM) | ≈ ¥6,900 | ≈ ¥82,800 | 利用率 < 20% 的旧世界 |
| 控制面 + 镜像仓库 | ≈ ¥250 | ≈ ¥3,000 | 托管费 |
| 节省(混部提效) | -≈ ¥1,950 | -≈ ¥23,400 | 15% → 45% 利用率 |
平台化后年成本 ≈ ¥37,200,较碎片化 VM 时代 -28%。服务越多、旧利用率越低,节省越大。
§ D16团队能力要求
DATA团队能力要求按需补齐
| 能力项 | 要求级别 | 如何补齐 |
|---|
| K8s 生产运维 | 必须 | 托管集群实操 + 演练考核 |
| GitOps 工程 | 必须 | 漂移恢复演练 |
| 容器化改造 | 必须 | 四项验收清单逐服务 |
| FinOps 方法 | 建议 | 月度账单分摊复盘 |
§ D17关键决策速查(ADR)
DATA关键决策速查(ADR)本阶段 4 个决策
| 决策 | 备选方案 | 结论理由 |
|---|
| 集群形态 | 自建 vs 云托管 | 托管:控制面运维不创造差异化 |
| 迁移顺序 | 核心先行 vs 边缘先行 | 边缘先行:练手与建立信心 |
| 交付模式 | 脚本 CD vs GitOps | GitOps:漂移自愈 + 审计 |
| 资源声明 | 经验值 vs 压测值 | 压测值:声明失真是事故之源 |
§ D18高频面试题
DATA高频面试题本阶段 4 题
| 问题 | 考察点 | 优秀回答特征 |
|---|
| 容器化的 ROI 怎么算? | 成本意识 | 环境/利用率/交付三笔账 |
| 迁移顺序怎么排? | 迁移策略 | 先边缘后核心 + 压测基线前置 |
| 优雅停机怎么配置? | 工程细节 | preStop + 就绪探针 + 排空时序 |
| HPA 指标怎么选? | 弹性设计 | 自定义指标(QPS/队列深度)优于 CPU |
§ D19命令与操作速查
DATA命令与操作速查平台运维
| 场景 | 命令/操作 | 说明 |
|---|
| Pod 排查 | describe + logs --previous | 看上次崩溃原因 |
| 资源画像 | metrics-server + VPA 建议 | requests 校准依据 |
| 事件审查 | kubectl get events | 调度失败/驱逐原因 |
| 漂移检查 | GitOps diff | 手工变更无所遁形 |
§ D20采购与商务要点
DATA采购与商务要点本阶段采购项
| 采购项 | 询价要点 | 商务注意 |
|---|
| 节点混合计费 | 包年打底 + 按量弹性比例 | 节点池与标签对应 |
| 镜像仓库企业版 | 扫描规则与加速带宽 | 与 CI 流量对齐 |
| 控制面 SLA | 版本升级窗口与通知 | 升级影响评估机制 |
§ D21阶段 KPI 卡
DATA阶段 KPI 卡验收口径
| KPI | 口径 | 目标 |
|---|
| 资源利用率 | 集群聚合 | ≥ 40% |
| 扩容响应 | 压测计时 | < 2 分钟 |
| 环境漂移 | GitOps 巡检 | 0 |
| 新服务交付 | 模板自助时长 | < 1 小时 |
§ D22交接清单
DATA交接清单换人不换知识
| 交接项 | 载体 | 验收 |
|---|
| 集群清单与权限台账 | 平台 + 密码管理器 | 权限与人对得上 |
| GitOps 仓库结构 | Git | 环境差异一目了然 |
| 成本分摊报表 | 看板 | 团队账单可解释 |
| 故障演练记录 | 归档 | 节点/集群级各一份 |
§ D23平台化检查点评审
DATA平台化检查点评审走向平台工程
| 检查项 | 达标标准 | 结果 |
|---|
| GitOps 收口 | 生产变更 100% 走 PR | 通过/不通过 |
| 弹性演练达标 | HPA 扩容 < 2 分钟 | 通过/不通过 |
| 成本分摊上线 | 账单按团队可归因 | 通过/不通过 |
| 利用率达标 | 集群平均利用率 | ≥ 40% |