简单介绍一下 Google Cloud 的 Spot VM

什么是Spot VM?

Spot VM(以下简称Spot VM)是指在谷歌云中过剩的便宜的虚拟机将作为服务提供,这个在国外大型基础云中都有类似的实施案例。所以本篇内容,不仅仅适用于Google Cloud,其他如AWS,Alibaba Cloud,概念上是相通的

虽然Spot VM可以以大幅优惠的价格使用,但当谷歌云中的虚拟机资源即将用完时,它会终止Spot VM,将资源优先分配给使用正常价格的用户,所以如果你发现你所使用的Spot VM突然停止,不要惊讶。还有一个术语,叫做抢占式虚拟机,这个意思不是说你可以抢占别人,而是以正价付费使用的用户,可以抢占你的虚拟机资源,即Spot VM 是可被抢占的 VM。

另外,Spot 抢占式 VM 在创建后最多只能持续 24 小时。但这并不排除你创建了没多久,可能还不到 12 小时,虚拟机资源就被回收的情况发生,那么Spot VM这种运作模式,为什么还会被这么多人推崇和使用呢?它的优缺点是什么?这里简单总结一下。

优点

  1. 与普通正价购买的 VM 相比,折扣范围从 60% 到 91%不等,具体取决于机器类型和 GPU
  2. GPU、本地 SSD 和连接到 Spot VM 的外部弹性 IP 地址也适用此折扣
  3. 在意外停止的情况下,可以通过使用关闭脚本来避免数据丢失
  4. 没有最小或最大运行时间,除非你限制了运行时间

缺点

  1. 与正价购买的 VM 相比,需要根据当下GCE可用资源池的余量决定是否有Spot VM可供使用
  2. 由于本身是抢占式VM,因此可能会突然停止,没有征兆
  3. 更不存在 SLA 保证,不受 GCE SLA 的约束
  4. GCE的特性Live Migration在Spot VM上是没有的
  5. 在有提供免费套餐的可用区,不能免费使用

一些技巧

虽然 Spot VM 是抢占式VM,会有运行时间的限制,也会被其他正价购买 VM 的用户所抢占资源,但它并不是像强制按电源按钮那样关机,而是由控制台向虚拟机发送停止指令,那么我们是可以在这段停止指令生效期间,利用关机脚本编写一些脚本,去进行备份或清理等操作。

适用场景

Spot VM 尽管会面临随时被停止的情况发生,但是它仍然有非常积极的一面,最大的优点就是它的价格会非常低,如果你使用的场景里,有CI/CD 流水线编译的流程,因为这个大多数编译工作都不会特别长,而且对SLA没有硬性要求,即便失败了重新开启就好。如果是这种场景的,那么使用Spot VM就可以显著降低你的成本。

如果是普通项目,需要稳定长时间运行的,建议正价购买VM,不要尝试Spot 抢占式 VM,即便你使用K8S集群,也不要把节点放置在Spot VM(除非是临时的非重要的工作流程)

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享