K8S容器是否使用hostos的文件缓存

Does K8S container use file cache of host os

抱歉我的英语不好。

我正在调整 java 在 k8s pod 中工作的虚拟机。

通常 java vm 不应使用所有内存。内核应该使用一些内存用于缓存、缓冲区、资源管理等。 我知道容器共享 hostos 内核。 问题是 pods 的资源限制是否包括文件缓存等内核内存。

谢谢。

不,这些类型的缓冲区不会按进程进行跟踪,因此不受 cgroups 设置的约束。我认为 vfs 缓存专门在命名空间处理后全局共享,但不是 100% 确定。

正如你问的问题,我假设你已经搜索过如何在 K8S 中设置内存限制 -> https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-limits-are-run

在本节中,您将知道您设置的限制将转换为 docker 命令(如果您在 k8s 中使用 docker),spec.containers[].resources.limits.memory -> --memory=""

如果你在 docker -> https://docs.docker.com/config/containers/resource_constraints/#--kernel-memory-details 中查看关于内核内存的官方文档,这在 k8s 文档中没有提到。所以我假设该值应该是不同类型 linux 系统的默认值。