【问题标题】:in kubernetes, emptyDir.medium vs ephemeral storage - which one takes precedence?在 kubernetes 中,emptyDir.medium 与临时存储 - 哪个优先?
【发布时间】:2020-05-23 04:10:00
【问题描述】:

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

- name: file-storage
  emptyDir:
    medium: Memory

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

limits:
  cpu:                2
  ephemeral-storage:  2Gi
  memory:             2Gi
requests:
  cpu:                1
  ephemeral-storage:  2Gi
  memory:             2Gi

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

【问题讨论】:

  • 简短回答:如果你发现对应的卷挂载在 tmpfs 上,那么它在 RAM 上;否则 ext4 或其他。

标签: kubernetes


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    如果不指定创建 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

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 2022-01-16
      • 1970-01-01
      • 2019-06-09
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 2012-11-14
      相关资源
      最近更新 更多