eStargz(seekable tar.gz)是一个向后兼容的tar.gz格式,最初是由google的‣项目引入,estargz是对其的改进,支持chunk级别的verification以及对运行时进行了性能优化。传统的tar.gz格式存在以下问题:
eStargz解决了上述问题,并开启了lazy pulling,此外还支持文件的预取,这可用于减轻因按需获取每个文件而导致的运行时性能缺陷。这个扩展是向后兼容的,因此 eStargz 格式的映像可以推送到registry上,甚至可以在与 eStargz 无关的运行时上运行。

eStargz是一个文件gzip压缩的tar archive和一个叫做TOC的元数据组件构成,每个非空常规文件和每个元数据组件必须单独压缩为 gzip。这个结构继承自stargz。因此,gzip 标头必须位于以下位置。
eStargz blob 中的大型常规文件可能会被分块成几个较小的 gzip 成员。在此文档中,每个分块成员都称为分块。因此,gzip 标头可能位于以下位置。
eStargz 格式的 blob 是这些 gzip 成员的串联,这是一个仍然有效的 gzip blob。
eStargz包含一个名为TOC的常规文件,该文件记录eStargz中所有文件条目的元数据(例如名称,文件类型,所有者,偏移量等)除了TOC自己。容器运行时可以使用 TOC 挂载容器的文件系统,而无需下载整个层内容。TOC必须是一个名为stargz.index.json的JSON文件,并且是作为tar的最后一个条目。以下字段包含构成TOC的主要属性。
version int
This REQUIRED property contains the version of the TOC. This value MUST be 1.
entries array of objects
This property MUST contain an array of TOCEntry of all tar entries and chunks in the blob, except stargz.index.json.