章节摘要:本章跟着一条线走——容器镜像里没有的两样东西,运行时配置与持久数据,如何沿着各自的补给线送达 orders-api:ConfigMap 与 Secret 以环境变量或文件挂载注入,存储则经"申请人 PVC、管理员或 StorageClass 供给 PV"的申领制度落地。镜像保持通用,环境差异全部外置,是这一章要立下的工程纪律。
前五章的声明越来越完整,但一直有个细节被刻意绕开:orders-api 怎么知道数据库地址是哪个?日志级别开多少?TLS 证书从哪读?答案是——都不写在镜像里。镜像一旦把环境信息烧死,一个应用就要为开发、测试、生产各造一个镜像,"镜像不可变"的工程价值当场作废。
本章的两条补给线解决镜像的"不知道":

本章两节,两条补给线各一节:
两节都直接服务于前文的案例:6.1 兑现 1.2 节环境变量的伏笔与 5.2 节 TLS 证书的 secretName,6.2 兑现 4.3 节 StatefulSet 卷模板里 PVC 的伏笔——本章结束时,本教程主线声明里的所有占位符都将被填实。
本章的认知拐点有二。其一在 6.1:Secret 不是加密存储,而是编码存储——Base64 只是编码,真正的防线在 RBAC 权限与 etcd 静态加密,把 Secret 当保险箱是认知错位。其二在 6.2:PVC 声明的是需求而非设备——应用要的是"100Gi、单副本读写",至于背后是云盘还是本地盘,由 StorageClass 按策略撮合;需求与供给解耦,应用声明才能跨环境迁移。
结论一句话:镜像管"程序是什么",配置管"环境是什么",存储管"数据放哪里"——三者分离的应用才配得上"可迁移"三个字。
至此,一份 Deployment 从写出、受理、落地、自愈到配置补给的全程已经走完。最后一章切到运维视角:声明跑起来之后,如何用日志、指标、追踪看清它;声明与现状不一致时,按什么手册排障;以及当一份声明要复制到一百个环境时,Helm 与 GitOps 如何接管。