kubelet释放emptyDir存储前是否会物理擦除数据?
Kubernetes emptyDir 数据擦除机制说明
kubelet在释放emptyDir存储前,不会通过写入零值或其他方式对存储介质上的数据进行物理擦除。
Kubernetes文档中提到的“当Pod因任何原因从节点移除时,emptyDir中的数据会被永久删除”,这里的“永久删除”仅指Kubernetes和操作系统层面的逻辑删除:对应的emptyDir目录会被删除,文件系统会将这些空间标记为可用,但物理介质上的原始数据块并没有被覆盖。
从原理上来说,当这些被标记为可用的磁盘空间被重新分配给其他Pod的emptyDir时,新数据会直接覆盖旧数据块,但在覆盖发生前,通过磁盘取证工具或者直接读取未被覆盖的存储区块,仍然有可能恢复出原Pod遗留的数据。
如果你的场景涉及敏感数据存储,不建议依赖emptyDir的默认行为来保障数据安全。可以在Pod终止前,通过容器内的脚本主动执行数据擦除操作(比如使用shred命令覆盖文件,或用dd写入零值填充emptyDir目录),或者选择带有数据擦除能力的专用存储卷方案。
内容的提问来源于stack exchange,提问作者SundarNadathur
相关产品推荐
相关产品推荐

