我们遇到一个问题,关于在将大图像拉入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
根据您提供的日志,看起来几乎可以肯定是发生了内存不足的情况。请注意,从失败的ctr pull-image命令输出中可以看出,它正在解压缩下载的镜像文件,并将其提取到容器文件系统中。在这个过程中,需要大量的内存和磁盘空间。因此,当您尝试使用大型图像时,容器可能会因为无法满足内存需求而失败。
为了解决这个问题,您可以考虑尝试增加guest的内存配额,以便它可以更好地处理大型镜像。这可以通过修改您的Kata Containers配置文件进行更改。您可以尝试增加内存配额参数,例如,在/etc/kata-containers/configuration.toml文件中的[kata.runtime]部分中添加:
[kata.runtime] memory = "2048M" 记得重新启动Kata Containers以应用此更改。如果问题仍然存在,您可能需要考虑使用更强大的主机进行测试。
我检查了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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。