配置管理与镜像构建的分工是什么
镜像构建(把软件与依赖打进不可变镜像)与配置管理(在运行环境内收敛配置)职责常有重叠,边界不清会出现「镜像里做一半、启动时又改一半」的混乱。通用分工原则是:不随环境变化的内容进镜像(运行时、依赖库、应用制品、默认配置),环境相关与运行期才能确定的内容留在外部(环境变量、挂载的配置文件、密钥、运行时参数)。这样镜像可跨环境复用,运行环境保持不可变,回滚单位也清晰。
基本信息
| 进镜像 | 运行时、依赖、应用制品、默认配置与健康检查定义 |
|---|---|
| 留外部 | 环境变量、挂载配置、密钥、运行时参数 |
| 判断标准 | 是否随环境变化、是否需运行期决定、是否含敏感信息 |
| 收益 | 镜像可复用、运行环境不可变、回滚单位明确 |
| 风险 | 把环境值固化进镜像导致跨环境不可用 |
典型使用场景
- 容器化改造时明确哪些配置进镜像、哪些外部注入
- 多环境共用同一镜像,仅通过外部值区分
- 镜像内保留默认配置作为基线,环境值覆盖之
- 以镜像版本作为回滚单位,避免就地修改
- 构建阶段完成依赖安装,减少启动期不确定性
分工判定问题集
分工判定问题集
# 逐项提问,回答决定归属
# 这份内容会随环境变化吗? 会 → 放外部
# 这份内容运行期才能确定吗? 会 → 放外部
# 这份内容含敏感信息吗? 含 → 外部密钥机制
# 其余(运行时、依赖、制品、默认配置)→ 进镜像
# 镜像内保留一份可用默认值,环境值覆盖而非修改镜像内容类型与归属
| 内容类型 | 归属 | 理由 |
|---|---|---|
| 运行时与依赖库 | 镜像 | 保证环境可复现 |
| 应用制品 | 镜像 | 版本与镜像一一对应 |
| 默认配置 | 镜像 | 提供开箱可用的基线 |
| 环境相关参数 | 外部注入 | 同一镜像可跨环境复用 |
| 敏感信息 | 外部密钥机制 | 避免随镜像分发扩散 |
镜像内保留一份可用默认值能让镜像独立可运行,便于本地验证与故障排查;但环境值必须通过外部注入覆盖,避免把默认值误当成生产值使用。
把环境相关值固化进镜像会破坏可复用性:同一镜像在不同环境需要重新构建,构建产物与环境绑定后回滚单位变得模糊,历史版本也难以复现。