我们最近遇到了一个问题,我们的主 Dataproc 实例重新启动,我们的一些服务没有正常启动;我们不确定是什么触发了这次重新启动,但日志表明这是 GCP 维护。虽然我们可能会使用Stackdriver 监控为了捕捉并应对此类事件,我们不得不思考 GCP 是否有一种服务可以在维护行动之前或维护行动时通知我们维护事宜。任何提示都将不胜感激!
答案1
正如 kasperd 所说,一般来说,虚拟机在维护时会(可选)进行实时迁移,也许您会观察到硬件故障,但也有例外,包括具有 GPU 加速器的实例,如下所示:GCP 维护事件
Google 确实提供了一种通过轮询 URL 来获取待处理维护事件通知的方法:curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
--- NONE 的回复表示没有待处理或正在进行的事件。
他们还提供了一个 Python 包装脚本框架,以避免重复轮询此 URL:https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/compute/metadata/main.py
答案2
GCP 不会因计划维护而重启虚拟机。相反,虚拟机会实时迁移,以避免维护期间虚拟机重启和停机。
Compute Engine 提供实时迁移功能,即使发生主机系统事件(例如软件或硬件更新),虚拟机实例也能继续运行。Compute Engine 会将您正在运行的实例实时迁移到同一区域内的另一台主机,而无需重新启动虚拟机。这样,Google 便可以执行维护工作,这对于确保基础架构安全可靠至关重要,而且不会中断任何虚拟机。[来源]
但是,如果运行虚拟机的硬件出现故障,虚拟机可能会重新启动。
答案3
如何控制这些维护事件?我希望 Google 在我的项目非工作时间(即周六和周日)执行此维护事件。我们是否有任何选项可以自行设置维护计划?