在 kubernetes 中,emptyDir.medium 与临时存储 - 哪一个优先?

Tec*_*kie 5 kubernetes

我有一个指定了以下卷的 Pod

- name: file-storage
  emptyDir:
    medium: Memory
Run Code Online (Sandbox Code Playgroud)

还具有请求和限制中指定的临时存储:

limits:
  cpu:                2
  ephemeral-storage:  2Gi
  memory:             2Gi
requests:
  cpu:                1
  ephemeral-storage:  2Gi
  memory:             2Gi
Run Code Online (Sandbox Code Playgroud)

现在我想知道,emptyDir.medium 会优先,以便我可以使用 RAM,还是获得临时存储并让 kubernetes 为我决定最好的?

小智 7

emptyDir 规范medium: Memory存储在 RAM 上,并计入您的请求和您指定的内存限制。如果删除,medium: Memory那么它们将存储在ephemeral-storage.

这是因为medium: Memory规范是在tmpfs从 RAM 分配的内存上创建的。

如果您想了解更多相关信息,请查看以下链接:

https://kubernetes.io/docs/concepts/storage/volumes/#emptydir https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-emphemeralstorage-conspiration

希望这能回答您的问题,如果您需要更清楚的说明,请告诉我。


red*_*ack 5

如果您不指定在何处创建emptyDir,它将在Kubernetes节点的磁盘空间上创建。

如果您需要一个小的暂存卷,您可以将其定义为在 RAM 中创建。一旦您开始使用emptyDir.medium,它就会开始使用RAM。

您可以通过创建 busybox 的部署、执行到 pod 并运行 df -h 来检查相同的情况,然后您可以检查是否会获得 tmpfs (RAM) 文件系统类型。

基于 RAM 的emptyDir 的默认大小是其运行的节点的RAM 的一半。根据限制和请求,请尝试检查磁盘的大小。它仍然来自节点还是从限制值中获取。

请检查此练习以更好地理解 https://www.alibabacloud.com/blog/kubernetes-volume-basics-emptydir-and-persistentvolume_594834