Visualizar, cancelar ou excluir solicitações de redimensionamento em um MIG


Neste documento, descrevemos como fazer o seguinte depois de criar uma solicitação de redimensionamento em um grupo gerenciado de instâncias (MIG):

Depois de criar solicitações de redimensionamento em um MIG, você pode fazer uma ou mais das seguintes ações:

  • Confira as solicitações de redimensionamento para monitorar os estados ou solucionar problemas.

  • Cancele as solicitações de redimensionamento para impedir que o MIG crie o número solicitado de instâncias de máquina virtual (VM).

  • Exclua as solicitações de redimensionamento quando não precisar mais delas.

Antes de começar

  • Saiba como funcionam as solicitações de redimensionamento.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Funções exigidas

Para ter as permissões necessárias para visualizar, cancelar ou excluir solicitações de redimensionamento em um MIG, peça ao administrador para conceder a você o Administrador de instâncias do Compute (v1) ) (roles/compute.instanceAdmin.v1) papel do IAM no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Este papel predefinido contém as permissões necessárias para visualizar, cancelar ou excluir solicitações de redimensionamento em um MIG. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para visualizar, cancelar ou excluir solicitações de redimensionamento em um MIG:

  • Para cancelar ou excluir solicitações de redimensionamento em um MIG: compute.instanceGroupManagers.update
  • Para ver uma lista de solicitações de redimensionamento em um MIG: compute.instanceGroupManagers.list
  • Para conferir os detalhes de uma solicitação de redimensionamento: compute.instanceGroupManagers.get

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Ver suas solicitações de redimensionamento

Para conferir informações sobre as solicitações de redimensionamento em um MIG, use um dos seguintes métodos:

Ver uma lista de solicitações de redimensionamento em um MIG

Para conferir uma lista de todas as solicitações de redimensionamento em um MIG, selecione uma das seguintes opções:

Para conferir uma lista de todas as solicitações de redimensionamento em um MIG regional, use a CLI gcloud ou a API REST. Caso contrário, para conferir uma lista de todas as solicitações de redimensionamento em um MIG zonal, selecione uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Na coluna Nome, clique no nome do MIG que contém solicitações de redimensionamento.

    A página de visão geral do MIG será aberta.

  3. Na linha Solicitações de redimensionamento, clique em Editar solicitações de redimensionamento.

    O painel Solicitações de redimensionamento será exibido. Se a coluna Details de uma solicitação de redimensionamento mostrar o valor Quota exceeded ou ETA: indefinite, sua solicitação encontrou um erro. Clique nesses valores para saber mais.

    Para mais informações sobre como resolver erros, consulte Conferir os detalhes de uma solicitação de redimensionamento neste documento.

gcloud

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG com solicitações de redimensionamento aceitas, concluídas, canceladas ou com falha.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

O resultado será semelhante ao seguinte para um MIG zonal:

NAME: rr-01
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 5
STATE: SUCCEEDED
REQUESTED_RUN_DURATION: P1D

NAME: rr-02
LOCATION: us-central1-a
SCOPE: zone
RESIZE_BY: 10
STATE: ACCEPTED
REQUESTED_RUN_DURATION: P3D

REST

  • Para conferir uma lista de solicitações de redimensionamento em um MIG zonal, envie uma solicitação GET usando o método instanceGroupManagerResizeRequests.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
  • Para conferir uma lista de solicitações de redimensionamento em um MIG regional, envie uma solicitação GET usando o método beta.regionInstanceGroupManagerResizeRequests.list.

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    

Substitua:

  • PROJECT_ID: o ID do projeto em que um MIG com solicitações de redimensionamento aceitas, bem-sucedidas, canceladas ou com falha está localizado.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

  • INSTANCE_GROUP_NAME: o nome de um MIG atual com solicitações de redimensionamento aceitas, concluídas, canceladas ou com falha.

A saída de um MIG de zona é semelhante a esta:

{
  "kind": "compute#instanceGroupManagerResizeRequestList",
  "id": "projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests",
  "items": [
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "4247139565532196982",
      "creationTimestamp": "2024-01-08T07:51:53.034-08:00",
      "name": "rr-01",
      "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
      "count": 5,
      "resizeBy": 5,
      "requestedRunDuration": {
        "seconds": "86400",
        "nanos": 0
      },
      "state": "SUCCEEDED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-01",
      "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
    },
    {
      "kind": "compute#instanceGroupManagerResizeRequest",
      "id": "8095866098849525652",
      "creationTimestamp": "2024-01-11T08:04:11.851-08:00",
      "name": "rr-02",
      "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
      "count": 10,
      "resizeBy": 10,
      "requestedRunDuration": {
        "seconds": "259200",
        "nanos": 0
      },
      "state": "ACCEPTED",
      "status": {},
      "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-02",
      "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/8095866098849525652"
    }
  ],
  "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests"
}

Visualizar os detalhes de uma solicitação de redimensionamento

Veja os detalhes de uma solicitação de redimensionamento para analisar a configuração dela e, opcionalmente, solucioná-la, caso a solicitação ainda não tenha sido bem-sucedida.

Se uma solicitação de redimensionamento aceita não tiver sucesso, você poderá resolver o problema verificando o campo status.lastAttempt.error.errors.code nos detalhes da solicitação. Estes são os códigos de erro possíveis:

  • QUOTA_EXCEEDED: seu projeto não tem cota para os recursos solicitados. Para aumentar a cota do projeto, consulte Solicitar uma cota maior.

  • ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: os recursos solicitados estão temporariamente indisponíveis. O Compute Engine programou a criação dos recursos solicitados e planeja criá-los quando eles estiverem disponíveis. Se o campo message contiver Expected time is indefinite, o Google vai recomendar que você cancele a solicitação e tente uma ou mais das seguintes opções:

    • Crie uma nova solicitação de redimensionamento com um número menor de VMs solicitadas.

    • Use um tipo de máquina diferente no MIG e crie uma nova solicitação de redimensionamento. Para usar um tipo de máquina diferente, crie um novo modelo de instância e use esse modelo para criar ou atualizar um MIG.

    • Crie uma solicitação de redimensionamento em um MIG localizado em uma região ou zona diferente.

Para conferir os detalhes de uma solicitação de redimensionamento, selecione uma das seguintes opções:

gcloud

  • Para visualizar os detalhes de uma solicitação de redimensionamento em um MIG zonal, use o comando instance-groups managed resize-requests describe.

    gcloud compute instance-groups managed resize-requests describe INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --zone=ZONE
    
  • Para conferir os detalhes de uma solicitação de redimensionamento em um MIG regional, use o comando beta instance-groups managed resize-requests describe.

    gcloud beta compute instance-groups managed resize-requests describe INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --region=REGION
    

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG.

  • RESIZE_REQUEST_NAME: o nome de uma solicitação de redimensionamento para a qual você quer ver os detalhes.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

O resultado será semelhante ao seguinte para um MIG zonal:

creationTimestamp: '2024-09-23T02:27:09.575-07:00'
id: '6386622402379156098'
kind: compute#instanceGroupManagerResizeRequest
name: example-request
requestedRunDuration:
  nanos: 0
  seconds: '86400'
resizeBy: 10
selfLink: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/6386622402379156098
state: ACCEPTED
status:
  lastAttempt:
    error:
      errors:
      - code: QUOTA_EXCEEDED
        message: Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1.
      - code: ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
        message: There are currently not enough resources available to fulfill the request. Expected time is indefinite.
        - errorDetails:
          - errorInfo:
            - metadatas:
              - estimatedAvailabilityTime: '9999-12-31T23:59:59.999999999Z'
zone: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a

REST

  • Para conferir os detalhes de uma solicitação de redimensionamento em um MIG zonal, envie uma solicitação GET usando o método instanceGroupManagerResizeRequests.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    
  • Para conferir os detalhes de uma solicitação de redimensionamento em um MIG regional, envie uma solicitação GET usando o método beta.regionInstanceGroupManagerResizeRequests.get.

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    

Substitua:

  • PROJECT_ID: o ID do projeto em que o MIG zonal está localizado.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

  • INSTANCE_GROUP_NAME: o nome de um MIG em que a solicitação de redimensionamento está localizada.

  • RESIZE_REQUEST_NAME: o nome de uma solicitação de redimensionamento existente para a qual você quer ver os detalhes.

O resultado será assim:

{
  "kind": "compute#instanceGroupManagerResizeRequest",
  "id": "6386622402379156098",
  "creationTimestamp": "2024-09-23T02:27:09.575-07:00",
  "name": "example-request",
  "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
  "resizeBy": 10,
  "requestedRunDuration": {
    "seconds": "86400",
    "nanos": 0
  },
  "state": "SUCCEEDED",
  "status": {
    "lastAttempt": {
      "error": {
        "errors": [
          {
            "code": "QUOTA_EXCEEDED",
            "message": "Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1."
          },
          {
            "code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
            "message": "There are currently not enough resources available to fulfill the request. Expected time is indefinite.",
            "errorDetails": [
              {
                "errorInfo":{
                  "metadatas":{
                    "estimatedAvailabilityTime": "9999-12-31T23:59:59.999999999Z"
                  }
                }
              }
            ]
          }
        ]
      }
    }
  },
  "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request",
  "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/6386622402379156098"
}

Cancelar solicitações de redimensionamento em um MIG

É possível cancelar as solicitações de redimensionamento em um MIG para impedir que ele tente criar o número solicitado de VMs. Só é possível cancelar as solicitações de redimensionamento aceitas (ACCEPTED). Depois de cancelar uma solicitação de redimensionamento, será possível excluí-la ou permitir que o Compute Engine a exclua automaticamente após 14 dias.

Para cancelar várias solicitações de redimensionamento ao mesmo tempo, use o console do Google Cloud ou a Google Cloud CLI. Para cancelar uma única solicitação de redimensionamento, selecione uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Na coluna Nome, clique no nome do MIG que contém solicitações de redimensionamento.

    A página de visão geral do MIG será aberta.

  3. Na linha Solicitações de redimensionamento, clique em Editar solicitações de redimensionamento.

    O painel Solicitações de redimensionamento será exibido.

  4. Selecione as solicitações de redimensionamento a serem canceladas.

  5. Clique em Cancelar e em Confirmar.

gcloud

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG com solicitações de redimensionamento aceitas.

  • RESIZE_REQUEST_NAMES: uma lista separada por vírgulas de nomes de solicitações de redimensionamento aceitas no MIG zonal especificado; Por exemplo, especifique request-1,request-2.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

REST

  • Para cancelar uma solicitação de redimensionamento em um MIG zonal, envie uma solicitação POST usando o método instanceGroupManagerResizeRequests.cancel.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME/cancel
    
  • Para cancelar uma solicitação de redimensionamento em um MIG regional, envie uma solicitação POST usando o método beta.regionInstanceGroupManagerResizeRequests.cancel.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME/cancel
    

Substitua:

  • PROJECT_ID: o ID do projeto em que um MIG zonal atual com uma solicitação de redimensionamento aceita está localizado.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

  • INSTANCE_GROUP_NAME: o nome do MIG;

  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento a ser cancelada.

Excluir solicitações de redimensionamento em um MIG

Por padrão, o Compute Engine exclui automaticamente uma solicitação de redimensionamento 14 dias após definir o estado dela como um dos seguintes:

  • Concluído (SUCCEEDED)

  • Falha (FAILED)

  • Cancelado (CANCELLED)

No entanto, é possível excluir imediatamente uma solicitação de redimensionamento antes disso, conforme descrito nesta seção.

A exclusão de uma solicitação de redimensionamento bem-sucedida não exclui as VMs criadas por meio da solicitação. O MIG exclui automaticamente essas VMs ao final da duração de execução solicitada. No entanto, se o job tiver concluído a execução e você não precisar mais das VMs, exclua-as.

Para excluir várias solicitações de redimensionamento ao mesmo tempo, use o console do Google Cloud ou a CLI gcloud. Caso contrário, para excluir uma única solicitação de redimensionamento, selecione uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Na coluna Nome, clique no nome do MIG que contém solicitações de redimensionamento.

    A página de visão geral do MIG será aberta.

  3. Na linha Solicitações de redimensionamento, clique em Editar solicitações de redimensionamento.

    O painel Solicitações de redimensionamento será exibido.

  4. Selecione as solicitações de redimensionamento a serem excluídas.

  5. Clique em Excluir e em Confirmar.

gcloud

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG com solicitações de redimensionamento bem-sucedidas, com falha ou canceladas.

  • RESIZE_REQUEST_NAMES: uma lista separada por vírgulas de nomes de solicitações de redimensionamento a serem excluídas no MIG. Por exemplo, especifique request-1,request-2.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

REST

  • Para excluir uma solicitação de redimensionamento em um MIG zonal, envie uma solicitação DELETE usando o método instanceGroupManagerResizeRequests.delete.

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    
  • Para excluir uma solicitação de redimensionamento em um MIG regional, envie uma solicitação DELETE usando o método beta.regionInstanceGroupManagerResizeRequests.delete.

    DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests/RESIZE_REQUEST_NAME
    

Substitua:

  • PROJECT_ID: o ID do projeto em que um MIG zonal atual com solicitações de redimensionamento bem-sucedidas, com falha ou canceladas está localizado.

  • ZONE: a zona em que o MIG está localizado.

  • REGION: a região em que o MIG está localizado.

  • INSTANCE_GROUP_NAME: o nome do MIG;

  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento a ser excluída.

A seguir