本系列的每个对象都有不同寿命:源码树变化不等于已部署镜像改变;Pod 重建不等于数据卷重建;HTTP 请求成功也不能证明读写结果符合预期。综合实验必须让一条请求沿同一个 digest、容器 ID、Pod UID、宿主 PID、namespace/cgroup、网络路径和卷挂载回溯到源码,而不是把不同实验的截图接成故事。

只用一份 probe-app

从干净的实验目录取独立源码包并校验 SHA,固定基础镜像 digest,按13构建真实镜像,按12分发到受控 registry,再按26将 digest 部署到自建 kind 节点。通过 Service 访问 /identity 取得进程信息,通过 /state 写入一段最多 4096 字节的合成文本;从 Pod UID 到容器 ID、宿主 PID,查 namespace inode、cgroup、网络地址/路由及卷的 mountinfo,最后在同一卷上重建 Pod 后复读内容。每一步记录输入、时间、原始响应与校验值,不能从“yaml 配好了”跳到“持久化成功”。

正常案例需要请求 JSON 中的 PID 和 UID 与节点对象一一对应,合成数据重建后可验证;边界案例让容器只能在 127.0.0.1 监听或改掉卷挂载,前者的服务入口不可达,后者“相同 URL 返回的数据”可能来自另一可写层。对照若缺任何中间对象,都须在证据链上标一个断点,不填预测 PID 或 digest。验证清单列出专用环境、清理与补跑;本机没有 registry、运行时/kind、卷与真实容器网络,完整端到端验收 NOT_RUN。本机 00/10 的独立小实验不能合并成一次全链路记录。

现象 沿链追溯 能否成立
HTTP 200 响应体与请求 ID、Pod UID 不保证写盘持久化
UID 与容器 ID 对不上 Pod 重建/滚动更新 切勿拼接两代日志
卷上仍有数据 mount 源、文件校验 需证明同一卷

练习

  1. 先预测同名 Pod 重建后哪些 ID 必换、哪些 digest 可以保持;逐项读取,标记能复用与会重建的对象。
  2. 先预测把 state-dir 改到容器可写层后请求仍返回 200,但 Pod 重建后的数据会怎样;记录文件、挂载源与请求输出核实。

上一篇:36:交付与回退;下一篇:38:故障与业务结果。

系列总目录:从进程隔离到运行时与编排。

参考资料