【问题标题】:GCP kubernetes nodes with GPU gets preempted too soon带有 GPU 的 GCP kubernetes 节点过早被抢占
【发布时间】:2020-03-03 02:17:21
【问题描述】:

我在us-central1-a 有一个带有自定义 GPU 驱动的抢占式节点池的 kubeflow k8s 集群:

我在这些 GPU 节点上运行 kubeflow 笔记本服务器。 由于某些神秘的原因,节点在启动后很快(5-10 分钟)就会收到 compute.instances.preempted 消息:

为什么会这样?

【问题讨论】:

  • 你看到这个有多久了?您是否对普通(非抢占式)实例尝试了相同的操作?
  • @night-gold 我经常看到它,有时是在节点创建后 10 分钟。笔记本服务器 pod 触发节点池自动缩放器,然后在短时间内节点被抢占。不可抢占的节点看起来没问题。

标签: kubernetes google-cloud-platform google-kubernetes-engine kubeflow


【解决方案1】:

由于您创建了一个可抢占节点池,这几乎是预期的行为。 GCE 可以终止抢占式实例at any time,并且您拥有的唯一真正保证是,如果它们运行,您将不会为该实例付费(但您将为任何请求的高级操作系统付费——其中 COS 不是其中之一)不到一分钟(当然,它们总是会在 24 小时后被抢占)。

GPU 节点的需求量可能很大,并且与其他可抢占式实例一样,这将受制于特定区域和一天中的时间。如果您需要实例保持可用,则应使用全价实例。使用 GKE,可以通过autoscale GPU nodes 来帮助控制成本。

【讨论】:

  • 听起来很合理。有什么方法可以诊断特定的抢占原因?
  • 并非如此,但您可以预期原因是“GCP 有一位客户愿意为这些资源支付全价,因此您成功了。”
  • 即使在全价的情况下,GPU 也会出现 ZONE_RESOURCE_POOL_EXAUSTED 错误(参见,例如this question),因此它们很难被抢占,这并不奇怪。如果您使用抢占式实例,则需要做好准备让它们离开并频繁地回来。
  • 我刚刚尝试使用新的节点池,节点在创建后 2 分钟被抢占。这看起来很奇怪
  • 这并不奇怪——如果您在高峰期需要高需求资源,请支付全价。如果您需要保证启动实例,请考虑reserving them——但只要保留存在,您就需要付费。
猜你喜欢
  • 2020-01-30
  • 2018-06-24
  • 2017-09-28
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 2014-06-11
相关资源
最近更新 更多