本文档介绍如何修改现有预留。
例如,当您的容量需求发生变化,或者您要允许或禁止项目使用共享预留时,修改预留会很有用。如果您想修改共享预留,只能使用所有者项目进行修改。
如需修改附加到承诺的预留,请参阅替换附加到承诺的预留。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
如需修改预留中的自动删除选项或共享预留中的使用方项目,请执行以下操作:针对项目的
compute.reservations.update
权限 -
如需修改预留中的虚拟机数量:针对项目的
compute.reservations.resize
权限 如需启用或停用预留的自动删除功能,或更改 Compute Engine 自动删除预留的日期和时间,请修改预留的自动删除功能。
如需添加或移除可使用共享预留的使用方项目,请修改共享预留中的使用方项目。
如需增加或减少预留中的预留虚拟机 (VM) 实例数量,请修改预留中的预留虚拟机数量。
如需允许或禁止 GPU 虚拟机的预留供 Vertex AI 中的自定义训练作业或预测作业使用,请修改预留的共享政策。
启用自动删除选项,或更改自动删除预留的时间。
停用自动删除选项。
在 Google Cloud 控制台中,转到预留页面。
在按需预留标签页(默认)的名称列中,点击要修改的预留的名称。
随即会打开所选预留的详情页面。
在自动删除时间行中,点击
修改自动删除时间。在更新预留窗格中,执行以下操作之一:
如需在特定日期和时间删除预留,请执行以下操作:
如果尚未启用自动删除选项,请点击启用自动删除切换开关,以将其切换为开启位置。
在自动删除时间字段中,输入 Compute Engine 自动删除预留的日期和时间。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
点击提交。
修改预留的操作可能需要几秒钟时间才能完成。
如需在特定日期和时间删除预留,请使用带有
--delete-at-time
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有预留的名称。DELETE_AT_TIME
:采用 RFC 3339 时间戳格式的日期和时间。ZONE
:预留所在的可用区。
如需在特定时间段后删除预留,请使用带有
--delete-after-duration
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有预留的名称。DELETE_AFTER_DURATION
:以天、小时、分钟或秒为单位的时长,超过此时间将自动删除预留。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。ZONE
:预留所在的可用区。
RESERVATION_NAME
:现有预留的名称。ZONE
:预留所在的可用区。如需在特定日期和时间删除预留,请向
beta.reservations.update
方法发出PATCH
请求。在请求网址中添加paths
查询参数并设置为deleteAtTime
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime { "name": "RESERVATION_NAME", "deleteAtTime": "DELETE_AT_TIME" }
替换以下内容:
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。DELETE_AT_TIME
:采用 RFC 3339 时间戳格式的日期和时间。
如需在特定时间段后删除预留,请向
beta.reservations.update
方法发出PATCH
请求。在请求网址中添加paths
查询参数并设置为deleteAfterDuration.seconds
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAfterDuration.seconds { "name": "RESERVATION_NAME", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" } }
替换以下内容:
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。DELETE_AFTER_DURATION
:以秒为单位的时长,超过此时间将自动删除预留。例如,指定86400
标识 86400 秒(1 天)。
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。在 Google Cloud 控制台中,转到预留页面。
在按需预留标签页(默认)的名称列中,点击要说明的预留的名称。
随即会显示预留的详情页面。
点击
修改。在所选项目部分中,执行以下操作之一:
如需停止与特定使用方项目共享预留,请点击
删除。如需开始与一个或多个特定项目共享预留,请执行以下操作:
点击
添加项目。针对您要与之共享预留的所有者项目的组织,选中每个项目对应的复选框。
点击选择。
若要确认您的更改,请点击保存。
修改预留的操作可能需要几秒钟时间才能完成。
如需允许一个或多个项目使用共享预留,请使用带有
--add-share-with
标志的gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。CONSUMER_PROJECT_IDS
:要与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。ZONE
:共享预留所在的可用区。
如需不再允许一个或多个项目使用共享预留,请使用带
--remove-share-with
标志的gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。CONSUMER_PROJECT_IDS
:您希望不再与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。ZONE
:共享预留所在的可用区。
如需替换可使用共享预留的项目列表,请将
gcloud beta compute reservations update
命令与--share-with
标志结合使用。gcloud beta compute reservations update RESERVATION_NAME \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。ZONE
:共享预留所在的可用区。CONSUMER_PROJECT_IDS
:要与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。
如需允许一个或多个项目使用共享预留,请向
reservations.update
方法发出PATCH
请求。在请求网址中,针对您要与之共享预留的每个项目包含paths=shareSettings.projectMap.PROJECT_ID
查询参数。例如,如需允许两个项目使用共享预留,请发出以下
PATCH
请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME", "shareSetting": { "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } }
替换以下内容:
PROJECT_ID
:所有者项目的 ID,即用于创建共享预留的项目。ZONE
:共享预留所在的可用区。RESERVATION_NAME
:现有共享预留的名称。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:您要与之共享预留的两个项目的 ID。
如需不再允许一个或多个项目使用共享预留,请向
reservations.update
方法发出PATCH
请求。在请求网址中,针对您要停止与之共享预留的每个项目包含paths=shareSettings.projectMap.PROJECT_ID
查询参数。此外,您还必须在请求正文中省略shareSetting
字段。例如,如需不再允许两个项目使用共享预留,请发出以下
PATCH
请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME" }
替换以下内容:
PROJECT_ID
:所有者项目的 ID,即用于创建共享预留的项目。ZONE
:共享预留所在的可用区。RESERVATION_NAME
:现有共享预留的名称。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:您要停止与之共享预留的两个项目的 ID。
如果要增加预留中的预留虚拟机数量,请确保满足以下条件:
如果预留的使用类型是特定的,并且您希望减少预留中的预留虚拟机数量,则确保使用预留的虚拟机数量不超过所需的预留大小。您可以使用以下方法执行此操作:
在 Google Cloud 控制台中,转到预留页面。
在按需预留标签页(默认)的名称列中,点击要修改的预留的名称。
随即会显示预留的详情页面。
点击
修改。在虚拟机实例数量字段中,重新输入要预留的虚拟机数量。
点击保存进行确认。
修改预留的操作可能需要几秒钟时间才能完成。
RESERVATION_NAME
:现有预留的名称。NUMBER_OF_VMS
:要预留的虚拟机的新数量。ZONE
:预留所在的可用区。PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。NUMBER_OF_VMS
:要预留的虚拟机的新数量。在 Google Cloud 控制台中,转到预留页面。
在按需预留标签页(默认)的名称列中,点击要修改的 GPU 虚拟机预留的名称。
随即会打开所选预留的详情页面。
在与其他 Google Cloud 服务共享行中,点击
修改服务共享设置。在预留共享窗格中,执行以下操作之一:
如需允许 Vertex AI 使用预留,请选择共享预留。
如要禁止 Vertex AI 使用预留,请选择不共享预留。
点击保存。
修改预留的操作可能需要几秒钟时间才能完成。
RESERVATION_NAME
:现有预留的名称。SHARING_POLICY
:预留的共享政策。请指定以下某个值:如需允许 Vertex AI 使用预留资源,请执行以下操作:
ALLOW_ALL
如需禁止 Vertex AI 使用预留资源,请执行以下操作:
DISALLOW_ALL
ZONE
:预留所在的可用区。PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。SHARING_POLICY
:预留的共享政策。请指定以下某个值:如需允许 Vertex AI 使用预留资源,请执行以下操作:
ALLOW_ALL
如需禁止 Vertex AI 使用预留资源,请执行以下操作:
DISALLOW_ALL
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得修改预留所需的权限,请让您的管理员向您授予项目的 Compute Admin (
roles/compute.admin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含修改预留所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
修改预留需要以下权限:
修改预留
根据您要在预留中修改的属性,使用以下方法之一:
如果您想要更改此列表中未提及的任何属性,请参阅本文档中的更改预留中的其他属性。
修改预留的自动删除
您可以通过执行以下操作之一来修改 Compute Engine 自动删除现有预留的时间:
如需修改预留的自动删除,请选择以下选项之一:
控制台
gcloud
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需停用自动删除选项,请使用带有
--disable-auto-delete
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --disable-auto-delete \ --zone=ZONE
替换以下内容:
REST
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需停用自动删除选项,请向
beta.reservations.update
方法发出PATCH
请求。在请求中,指定paths=deleteAtTime&paths=deleteAfterDuration
查询参数并省略请求正文。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime&paths=deleteAfterDuration
替换以下内容:
修改共享预留中的使用方项目
仅当项目与所有者项目位于同一组织中时,您才能允许相应项目使用共享预留。如需了解如何将项目迁移到所有者项目的组织,请参阅 Resource Manager 文档中的在组织资源之间迁移项目。
修改哪些使用方项目可以使用共享预留后,该预留的使用情况可能会发生变化。例如,任何已移除的使用方项目都会停止使用预留中的资源。此外,如果将预留配置为与预留属性匹配的任何虚拟机自动使用(默认行为),则任何添加的使用方项目都可能会开始使用预留中的资源。如果您要监控预留的使用情况,请参阅如何验证预留使用情况。
如需修改可以使用共享预留的使用方项目,请选择以下选项之一:
控制台
gcloud
修改共享预留的使用方项目时,必须指定允许或不再允许使用共享预留的项目的 ID 列表(以英文逗号分隔)。这些项目必须与所有者项目位于同一组织中。请勿在列表中指定所有者项目。默认情况下,已允许使用共享预留。
如需修改共享预留的使用方项目,请选择以下方法之一:
REST
修改共享预留的使用方项目时,必须指定您要允许或不再允许使用共享预留的项目的 ID。这些项目必须与所有者项目位于同一组织中。请勿指定所有者项目。默认情况下,已允许使用共享预留。
如需修改共享预留的使用方项目,请选择以下方法之一:
修改预留中的预留虚拟机数量
您可以修改现有预留,以增加或减少预留的虚拟机数量。
在修改预留中预留虚拟机的数量之前,请确保满足以下条件:
如需修改预留中的预留虚拟机数量,请选择以下选项之一:
控制台
gcloud
如需修改预留中的预留虚拟机数量,请使用
gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
替换以下内容:
REST
如需修改预留中的预留虚拟机数量,请向
reservations.resize
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/resize { "specificSkuCount": "NUMBER_OF_VMS" }
替换以下内容:
修改预留的共享政策
通过修改 GPU 虚拟机预留的共享政策,您可以允许或禁止 Vertex AI 中的自定义训练作业或预测作业使用预留。
如果您想禁止 Vertex AI 使用预留,请在修改预留之前,确保没有自定义训练作业或预测作业在使用该预留。否则,您会遇到错误。
如需修改 GPU 虚拟机预留的共享政策,请选择以下选项之一:
控制台
gcloud
如需修改 GPU 虚拟机预留的共享政策,请使用带有
--reservation-sharing-policy
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --reservation-sharing-policy=SHARING_POLICY \ --zone=ZONE
替换以下内容:
REST
如需修改 GPU 虚拟机预留的共享政策,请向
beta.reservations.update
方法发出PATCH
请求。在请求网址中添加paths
查询参数并设置为reservationSharingPolicy.serviceShareType
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=reservationSharingPolicy.serviceShareType { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "SHARING_POLICY" } }
替换以下内容:
更改预留中的其他属性
如果您要修改修改预留部分中未提到的属性,则必须改为创建替换预留。
如需在不会导致预留容量意外减少的情况下替换预留,请执行以下操作:
问题排查
了解如何排查预留更新存在的问题。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-