排查虚拟机更新问题

本文档针对您在更新 Compute Engine 虚拟机实例时可能会遇到的常见问题提供了解决方案。如需有关如何更新虚拟机的一般说明,请参阅更新实例属性

最佳做法

为避免更新虚拟机时出现常见问题,请遵循以下最佳实践:

  • 使用 update-from-file 工作流:将实例配置导出到文件,修改该文件,然后使用 gcloud compute instances update-from-file 命令应用更改。这种方法有助于防止手动命令出错。

  • 使用 most-disruptive-allowed-action 标志:此标志可防止意外重启。将其设置为 NO_EFFECT 可测试您的更改,设置为 REFRESH 可进行非中断性更新,仅当您确定可以接受重启时才设置为 RESTART

常见问题

本部分列出了在更新虚拟机时可能会遇到的错误,并提供了有关如何解决这些错误的指南。

元数据指纹不匹配

当您尝试更新虚拟机实例,但自上次刷新页面或提取实例数据以来,虚拟机的元数据已被其他进程更新时,会发生此错误。

错误消息

Supplied fingerprint does not match current metadata fingerprint

解决方法

请求中的实例指纹属性必须与实例的当前指纹一致,以防止同时发出的更新请求彼此覆盖。请尝试以下操作:

  • 刷新页面:如果您使用的是 Google Cloud 控制台,请先刷新虚拟机实例的详细信息页面,然后再进行更改。

  • 使用 --no-etag-cache Google Cloud CLI 标志:如果您使用的是 Google Cloud CLI,请在 gcloud compute instances update 命令中使用 --no-etag-cache 标志。

  • 等待几分钟后重试:作为最后的手段,请尝试停止虚拟机,等待几分钟,然后再次尝试进行更改。