替换、移除或删除工作负载政策

本文档介绍如何替换、移除或删除托管式实例组 (MIG) 中的工作负载政策。这些操作在以下情况下非常有用:

  • 替换工作负载政策:您可以更改 Compute Engine 实例在 MIG 中的位置,也可以切换到更符合工作负载要求的其他工作负载政策。

  • 移除工作负载政策:如果工作负载不再需要特定的放置规则,您可以停止使用这些规则,从而将 MIG 恢复为默认的计算实例放置行为。

  • 删除工作负载政策:您可以永久删除不再需要的工作负载政策。

如需了解如何创建工作负载政策,请参阅为 MIG 创建工作负载政策

限制

仅当 MIG 中没有计算实例时,您才能替换或移除 MIG 中的工作负载政策。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

    选择标签页以了解您打算如何使用本页面上的示例:

    gcloud

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  • 设置默认区域和可用区
  • REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。

      安装 Google Cloud CLI。

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色

如需获得替换、移除或删除工作负载政策所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含替换、移除或删除工作负载政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需替换、移除或删除工作负载政策,您需要具备以下权限:

  • 从 MIG 中替换或移除工作负载政策: compute.instances.update on the project
  • 删除工作负载政策: compute.resourcePolicies.delete on the project

您也可以使用自定义角色或其他预定义角色来获取这些权限。

替换 MIG 中的工作负载政策

如需将 MIG 中的工作负载政策替换为其他现有工作负载政策,请选择以下选项之一:

gcloud

  1. 手动将 MIG 的大小设置为 0

  2. 如需替换 MIG 中的工作负载政策,请使用带有 --workload-policy 标志的 gcloud compute instance-groups managed update 命令。根据 MIG 类型,添加以下标志之一:

    • 如需替换可用区级 MIG 中的工作负载政策,请添加 --zone 标志:

      gcloud compute instance-groups managed update MIG_NAME \
          --workload-policy=WORKLOAD_POLICY \
          --zone=ZONE
      
    • 如需替换区域级 MIG 中的工作负载政策,请添加 --region 标志:

      gcloud compute instance-groups managed update MIG_NAME \
          --workload-policy=WORKLOAD_POLICY \
          --region=REGION
      

    替换以下内容:

    • MIG_NAME:MIG 的名称。

    • WORKLOAD_POLICY:要应用于 MIG 的工作负载政策的名称。

    • ZONE:可用区级 MIG 所在的可用区。

    • REGION:区域级 MIG 和工作负载政策所在的区域。

REST

  1. 手动将 MIG 的大小设置为 0

  2. 如需替换 MIG 中的工作负载政策,请向以下方法之一发出 PATCH 请求:

    • 如需替换可用区级 MIG 中的工作负载政策,请向 compute.instanceGroupManagers.patch 方法发出 PATCH 请求:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
      
      {
        "workloadPolicy": "projects/PROJECT_ID/regions/REGION/resourcePolicies/WORKLOAD_POLICY"
      }
      
    • 如需替换区域级 MIG 中的工作负载政策,请向 compute.regionInstanceGroupManagers.patch 方法发出 PATCH 请求:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
      
      {
        "workloadPolicy": "projects/PROJECT_ID/regions/REGION/resourcePolicies/WORKLOAD_POLICY"
      }
      

    替换以下内容:

    • PROJECT_ID:MIG 和工作负载政策所在项目的 ID。

    • ZONE:可用区级 MIG 所在的可用区。

    • REGION:区域级 MIG 和工作负载政策所在的区域。

    • MIG_NAME:MIG 的名称。

    • WORKLOAD_POLICY:要应用于 MIG 的工作负载政策的名称。

从 MIG 中移除工作负载政策

如需从 MIG 中移除工作负载政策,请选择以下选项之一:

gcloud

  1. 手动将 MIG 的大小设置为 0

  2. 如需从 MIG 中移除工作负载政策,请使用带有 --remove-workload-policy 标志的 gcloud compute instance-groups managed update 命令。根据 MIG 类型,添加以下标志之一:

    • 如需从可用区级 MIG 中移除工作负载政策,请添加 --zone 标志:

      gcloud compute instance-groups managed update MIG_NAME \
          --remove-workload-policy=WORKLOAD_POLICY \
          --zone=ZONE
      
    • 如需从区域级 MIG 中移除工作负载政策,请添加 --region 标志:

      gcloud compute instance-groups managed update MIG_NAME \
          --remove-workload-policy=WORKLOAD_POLICY \
          --region=REGION
      

    替换以下内容:

    • MIG_NAME:MIG 的名称。

    • WORKLOAD_POLICY:应用于 MIG 的工作负载政策的名称。

    • ZONE:可用区级 MIG 所在的可用区。

    • REGION:区域级 MIG 所在的区域。

REST

  1. 手动将 MIG 的大小设置为 0

  2. 如需从 MIG 中移除工作负载政策,请向以下方法之一发出 PATCH 请求:

    • 如需从可用区级 MIG 中移除工作负载政策,请向 compute.instanceGroupManagers.patch 方法发出请求:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
      
      {
        "workloadPolicy": ""
      }
      
    • 如需从区域级 MIG 中移除工作负载政策,请向 compute.regionInstanceGroupManagers.patch 方法发出请求:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
      
      {
        "workloadPolicy": ""
      }
      

    替换以下内容:

    • PROJECT_ID:MIG 和工作负载政策所在项目的 ID。

    • ZONE:可用区级 MIG 所在的可用区。

    • REGION:区域级 MIG 和工作负载政策所在的区域。

    • MIG_NAME:MIG 的名称。

删除工作负载政策

您无法删除已应用于 MIG 的工作负载政策。在删除政策之前,您必须先从 MIG 中移除该政策

如需删除工作负载政策,请选择以下选项之一:

gcloud

如需删除工作负载政策,请使用 gcloud compute resource-policies delete 命令

gcloud compute resource-policies delete WORKLOAD_POLICY \
    --region=REGION

替换以下内容:

  • WORKLOAD_POLICY:现有工作负载政策的名称。

  • REGION:工作负载政策所在的区域。

REST

如需删除工作负载政策,请向 resourcePolicies.delete 方法发出 DELETE 请求:

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

替换以下内容:

  • PROJECT_ID:工作负载政策所在项目的 ID。

  • REGION:工作负载政策所在的区域。

  • POLICY_NAME:现有工作负载政策的名称。

后续步骤