开发者社区> 问答> 正文

CCv0|无法提取大图像的问题

我们遇到一个问题,关于在将大图像拉入guest时出现的错误。我们尝试了几张较小的图片,并取得了成功。我们尝试的日志如下所示(我们从一个没有更改的原始CCv0开始)。

$ export KUBERNETES=no $ ./ccv0.sh -d build_and_install_all $ ./ccv0.sh crictl_create_cc_pod $ export PULL_IMAGE=docker.io/library/python:latest $ ./ccv0.sh shim_pull_image Issuing command 'sudo ctr --namespace k8s.io shim --id 8d39387f11009c4555ad6c5505131e3c3018525cdd97f6ec9b647134d0c871cc pull-image docker.io/library/python:latest 0123456789' ctr: rpc error: code = Internal desc = failed to unpack /run/image/layers/sha256_f606d8928ed378229f2460b94b504cca239fb906efc57acbdf9340bd298d5ddf/usr/share/doc/libsemanage-common/changelog.Debian.gz [ccv0.sh:506] ERROR: sudo ctr --namespace k8s.io shim --id 8d39387f11009c4555ad6c5505131e3c3018525cdd97f6ec9b647134d0c871cc pull-image docker.io/library/python:latest 0123456789

它似乎无法打开tar档案,但不确定。我们深入到guest,/run文件系统似乎比我们试图提取的图像要小。我们可能内存不足,但我们不确定。

此外,我们还尝试通过在/etc/kata-containers/configuration.toml中的[kata.agent]部分添加以下行来启用数据完整性,尽管我们不确定这是否有帮助。

data_integrity = 1

我们哪里做错了吗?

原提问者GitHub用户mikbras 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues

展开
收起
码字王 2023-05-17 16:10:56 210 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    根据您提供的日志,看起来几乎可以肯定是发生了内存不足的情况。请注意,从失败的ctr pull-image命令输出中可以看出,它正在解压缩下载的镜像文件,并将其提取到容器文件系统中。在这个过程中,需要大量的内存和磁盘空间。因此,当您尝试使用大型图像时,容器可能会因为无法满足内存需求而失败。

    为了解决这个问题,您可以考虑尝试增加guest的内存配额,以便它可以更好地处理大型镜像。这可以通过修改您的Kata Containers配置文件进行更改。您可以尝试增加内存配额参数,例如,在/etc/kata-containers/configuration.toml文件中的[kata.runtime]部分中添加:

    [kata.runtime] memory = "2048M" 记得重新启动Kata Containers以应用此更改。如果问题仍然存在,您可能需要考虑使用更强大的主机进行测试。

    2023-05-18 18:40:36
    赞同 展开评论 打赏
  • 我检查了docker.io/library/python:latest的图像大小

    python du -h 336M ./blobs/sha256 336M ./blobs 336M .

    开箱后:

    python_rootfs du -h 937M ./rootfs 941M .

    对于CoCo映像下载,默认情况下,它将保存在tmpfs下的guest内存中(具有HWTEE保护)。Kata内存的默认配置为2G:

    /usr/share/defaults/kata-containers/configuration.toml default_memory = 2048

    默认情况下,tmpfs的系统内存分配为10%,然后默认的映像存储大小为256M。

    您是否可以尝试增加Kata(如10240)的默认内存大小,或者使用CSI驱动程序来提供托管容器映像的可信存储。

    原回答者GitHub用户arronwy 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues

    2023-05-17 16:24:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载