排查未来预留请求问题


本文档介绍如何解决为 Compute Engine 可用区级资源创建或修改未来预留请求时遇到的问题。

一般未来预留请求错误

未能创建或修改未来预留请求,可能是由于本部分中的某个错误。

无法访问及查看未来预留

如果您无法在 gcloud CLI 或 Compute Engine API 中访问和使用未来预留,则此时可能不符合访问和使用未来预留的条件。在这种情况下,请与您的技术支持客户经理销售团队联系。

已超过使用方项目数上限

如果为共享未来预留请求指定超过 100 个使用方项目,就会出现此错误。

错误消息

Can only share with at most 100 projects.

解决方法:您最多可以为一个共享未来预留请求指定 100 个使用方项目。如果要指定更多预留,请创建多个共享未来预留请求。如需了解详情,请参阅共享按需预留的最佳做法

自动创建的预留的删除时间无效

当为未来预留请求的自动创建预留指定无效删除时间时,会发生此错误。

错误消息

Auto-created reservations cannot be deleted before future reservation end time.

解决方法:您只能在预留期结束后删除为未来预留的自动创建预留。如需查看您可以删除自动创建的预留的日期和时间,请查看预留的详细信息并查找 deleteAtTime 字段的值。

结束时间无效

当为未来预留请求的预留期指定无效时长时,会发生此错误。

错误消息

Future reservation end time must be at least 24 hours later than start time.

解决方法:预留期的结束时间必须至少比预留期的开始时间晚 24 小时。此外,为了提高 Google Cloud 批准您未来预留请求的可能性,请务必指定预留期的建议值之一。

开始时间无效

当您为未来预留请求的预留期指定无效开始时间时,就会出现此错误。

错误消息

Future reservation start time is either in the past or too early.

解决方案:在创建或修改未来预留请求时,请务必指定预留期的开始时间,该时间至少比您提交未来预留审核请求的日期和时间晚 1 小时。但是,为了提高 Google Cloud 批准您未来预留请求的可能性,建议指定一个开始时间的建议值

重叠的使用方项目

如果您的当前项目或您要与之共享未来预留请求的项目包含以下一项或两项内容,则会出现此错误:

  • 具有匹配虚拟机属性和可用区的共享预留,用于指定在您要创建的未来预留请求中未指定的使用方项目。

  • 具有匹配虚拟机属性和可用区的未来预留请求,用于指定在您要创建的未来预留请求中未指定的所有者或使用方项目。

错误消息

Future reservation with conflicting projects and matching instance properties with existing and overlapping shared projects is not allowed.

解决方法:创建未来预留请求时,请务必遵循创建未来预留请求的限制

如果您需要删除或修改自动创建的预留、按需预留或未来的预留请求,以阻止它们限制您可以创建的未来预留请求类型,请执行以下一个或多个操作:

重叠的预留期

发生此错误的原因是未来预留请求的预留期与具有匹配的虚拟机属性和可用区的现有未来预留请求的预留期重叠。

现有的未来预留请求可以位于您的预留请求所在的项目中,也可以位于您希望与之共享未来预留请求的项目中。

错误消息

Future reservation with overlapping time window for same instance properties and overlapping shared projects is not allowed.

解决方法:尝试以下方法之一:

没有组织的项目

当您指定不属于某个组织的项目时,会发生以下错误。

错误消息

Cannot create Shared Future Reservations in a project that does not belong to an organization.

解决方法:尝试以下方法之一:

  • 将当前项目迁移到组织,然后创建共享未来预留请求。

  • 在属于您要创建未来预留的请求的组织所属的项目中创建共享未来预留请求。

基于实例模板创建的未来预留请求错误

未能创建或修改通过指定实例模板创建的未来预留请求,可能是由于本部分中的某个错误。

不允许跨项目引用

如果您尝试通过指定其他项目中的实例模板来创建未来的预留请求,则会发生以下错误。

错误消息

Cross project referencing is not allowed for this resource.

解决方法:执行以下操作:

  1. 确保您在未来预留请求中指定的项目 ID 和实例模板的名称正确无误。如需检查实例模板是否存在,请获取有关模板的信息

  2. 实例模板包含特定于项目的设置,因此您只能在同一项目中访问和使用实例模板。请改为执行以下操作之一:

    • 如需通过指定实例模板来创建未来的预留请求,请执行以下操作:

      1. 在您的项目中创建一个新的实例模板

      2. 创建单项目共享未来预留请求时,指定新创建的实例模板。

    • 如需在不指定实例模板的情况下创建未来的预留请求,请通过直接指定虚拟机属性改为创建单项目共享预留请求

实例模板的可用区无效

如果您尝试通过指定具有无效模板位置的实例模板来创建未来的预留请求,则会发生以下错误。

错误消息

Future reservation cannot be created outside the zone/region of source resource.

解决方法:执行以下操作之一:

  • 请务必在与实例模板中的资源相同的区域和可用区中创建未来预留请求。在实例模板中指定的任何区域级资源可用区级资源(例如机器类型或磁盘)会将模板的使用限制在存在这些资源的位置。例如,如果您的实例模板指定了 us-central1-a 可用区中的现有磁盘,则必须在同一可用区中创建预留。否则,创建未来的预留请求将失败。

    如需检查现有模板是否指定了任何将模板绑定到特定区域或可用区的资源,请获取有关模板的信息并查找对其中的区域级资源或可用区级资源的引用。

  • 使用不限于特定区域或可用区的实例模板。由于无法更新实例模板,因此请执行以下操作:

    1. 使用更新后的属性根据现有模板创建新的实例模板

    2. 通过指定新创建的实例模板,创建单项目共享未来预留请求

    3. 可选:删除旧实例模板

替换实例模板属性

如果您尝试通过指定实例模板创建未来的预留请求,同时指定实例模板和虚拟机属性,则会发生此错误。

错误消息

InstanceProperties cannot be specified while an instance template is being provided.

解决方法:执行以下操作之一:

  • 若要通过指定实例模板创建未来的预留请求,请务必移除指定虚拟机属性的任何字段。

  • 如需创建通过指定具有不同虚拟机属性的实例模板来创建未来预留请求,请执行以下操作:

    1. 您无法更新现有实例模板。请改为根据现有模板创建新的实例模板

    2. 创建单项目共享未来预留请求时,指定新创建的实例模板。

    3. 可选:删除旧实例模板

  • 如需在不指定实例模板的情况下创建未来预留请求,请通过直接指定虚拟机属性改为创建单项目共享未来预留请求