如何在 Kubernetes 资源分配中考虑 tmpfs 的使用?

How to take tmpfs usage into account in Kubernetes resource allocation?

我有一个 Kubernetes 集群和一些应用程序 运行。所有 Pods 都有自己的资源 limit/request 设置。

我的一个应用程序使用 tmpfs (/dev/shm) 进行数据处理,因此我如下描述了它的卷设置以扩展可用的 tmpfs 大小:

volumes:
- name: tmpfs
  emptyDir:
    medium: Memory
    sizeLimit: 1G

但是,由于 Kubernetes 在调度新的 Pods 时没有考虑 tmpfs 的使用情况,一些 Pods 可能无法使用它们分配的内存,尽管已根据其内存成功调度请求。

可不可以让Kubernetes考虑使用tmpfs?我想将内存请求设置为其内存限制和 tmpfs 使用的总和,但这是不可能的,因为请求必须小于或等于限制。我想知道是否有合适的方法来做到这一点。

tmpfs 卷被视为容器内存使用,您应该将 1Gi 添加到您的 resources.limits.memory 以便调度程序考虑到这一点。 resources.requests.memory 低于您的限制是可以的。