当一个kata容器启动时,相关的过程是:
- containerd-shim-kata-v2 - qemu - virtiofsd
我知道containerd-shim-kata-v2和virtiofsd应该放在/sys/fs/cgroup/memory/kata_overhead下。 但qemu只是主机上的一个进程,它应该位于/sys/fs/cgroup/mestory/kubepods或/sys/fs/cgroup/mestory/kata_overhead下。
如果qemu进程在/sys/fs/cgroup/memory/kubepods下,这是否意味着虚拟机开销(例如内核内存)被添加到了pod中?
如果qemu进程在/sys/fs/cgroup/memory/kata_overhead下进行,这是否意味着所有容器工作负载内存的使用都不受限制?
在sandbox_cgroup_only=false的k8s节点中,我只能观察到kata_overhead内存的使用情况:
0
0
1240653824
原提问者GitHub用户fengyehong 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues
在cgroup内存核算中,sandbox_cgroup_only=false的含义是允许在机器上的其他进程(如qemu)被计入容器内存限制。这意味着如果您的kata容器运行在非sandox_cgroup_only配置的节点上,容器的内存限制将包括虚拟机的内存开销。
对于您提到的问题,如果qemu进程在/sys/fs/cgroup/memory/kubepods下,则虚拟机开销将被添加到pod中,而不是kata_overhead下。如果qemu进程在/sys/fs/cgroup/memory/kata_overhead下进行,则意味着所有容器工作负载内存使用量都不受限制,并且可能会导致超出内存限制的情况。
根据您提供的输出,只能看到kata_overhead的内存使用情况,而无法看到任何容器的内存使用情况。这可能是因为kata_overhead的内存限制被设置为更高的值,并且未达到限制。您可以尝试运行容器并查看它们的内存使用情况是否被正确计入kata_overhead cgroup中。
通常开销组没有限制,沙箱cgroup将包含vCPU线程,您可以检查任务文件。
你可以阅读https://github.com/kata-containers/kata-containers/blob/main/docs/design/host-cgroups.md#sandbox_cgroup_only--有关详细信息,默认设置为false。
原回答者GitHub用户liubin 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。