我们正在 Google Cloud 中使用 GPU 实例来运行机器学习相关服务。Google Cloud 为其 GPU 实例制定了这些计划外的维护计划。在实例停机维护之前,Google Cloud API 会在实例停机前 1 小时向该实例发送通知。
假设 GPU 实例名为“vm1”,我们希望在“vm1”收到稍后将进行维护的通知后启动一个备用 GPU 实例“vm1-duplicate”,以便我们的客户服务受到此次维护的影响。一旦“vm1”的维护完成,停止“vm1-duplicate”,这样就不会产生额外费用。
在 Google Cloud 中是否有一种优雅的方式可以编程实现基于某些条件/触发器/事件的自动虚拟机启动/停止?
答案1
超快速解决方案:在 vm 中安装 gcloud(应该已经存在),创建一个服务帐户 [1],创建一个小型 shell 脚本并每 15/30 分钟在 cron 中运行一次。
该脚本将监视事件 http 端点 [2],并通过 gcloud cmd 行从您的虚拟机中重新生成一个新的虚拟机。停止自动重启并保持新虚拟机正常运行。
如果可行,请考虑使用已存在的脚本和配置的 cron 来获取您自己的映像。这样重生将更加容易。
[1] 不是强制性的,只是为了避免将你的凭据放入虚拟机中
[2]https://cloud.google.com/compute/docs/gpus/gpu-host-maintenance