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):

  • Veja as solicitações de redimensionamento em um MIG para monitorar os estados ou solucionar problemas.

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

  • Excluir solicitações de redimensionamento?

Antes de começar

  • 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 da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

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

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

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 como conceder papéis, consulte Gerenciar acesso.

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 papéis personalizados ou outros papéis predefinidos.

Ver suas solicitações de redimensionamento

Com base nos detalhes que você quer visualizar em uma solicitação de redimensionamento, use um dos seguintes métodos:

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

É possível ver uma lista de todas as solicitações de redimensionamento em um MIG e os detalhes delas, como os estados, o número solicitado de VMs e a duração da execução das VMs.

Console

Para visualizar uma lista de todas as solicitações de redimensionamento em um MIG, faça o seguinte:

  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.

gcloud

Para ver uma lista de todas as solicitações de redimensionamento em um MIG, use o comando beta instance-groups managed resize-requests list.

gcloud beta compute instance-groups managed resize-requests list INSTANCE_GROUP_NAME \
    --zone=ZONE

Substitua:

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

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

O resultado será assim:

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 visualizar uma lista de todas as solicitações de redimensionamento em um MIG zonal, faça uma solicitação GET para o método beta.instanceGroupManagerResizeRequests.list.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests

Substitua:

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

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

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

O resultado será assim:

{
  "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/beta/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/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-01",
      "selfLinkWithId": "https://www.googleapis.com/compute/beta/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/beta/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/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/rr-02",
      "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/8095866098849525652"
    }
  ],
  "selfLink": "https://www.googleapis.com/compute/beta/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.

Para entender por que uma solicitação de redimensionamento (ACCEPTED) não está sendo bem-sucedida, verifique o campo lastAttempt.error.errors.code nos detalhes. Estes são os códigos de erro possíveis:

  • ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: os recursos solicitados estão temporariamente indisponíveis.

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

gcloud

Para visualizar os detalhes de uma solicitação de redimensionamento em um MIG zonal, 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 \
    --zone=ZONE

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG zonal atual 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.

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

O resultado será assim:

creationTimestamp: '2024-01-10T07:51:53.034-08:00'
id: '4247139565532196982'
kind: compute#instanceGroupManagerResizeRequest
name: example-request
requestedRunDuration:
  nanos: 0
  seconds: '6000'
resizeBy: 10
selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request
selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982
state: ACCEPTED
status:
  lastAttempt:
    error:
      errors:
      - code: ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
        message: There are currently not enough resources available to fulfill the request.
      - code: QUOTA_EXCEEDED
        message: Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1.
zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a

REST

Para visualizar os detalhes de uma solicitação de redimensionamento em um MIG, faça uma solicitação GET para o método beta.instanceGroupManagerResizeRequests.get.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/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.

  • INSTANCE_GROUP_NAME: o nome de um MIG zonal atual 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": "4247139565532196982",
  "creationTimestamp": "2024-01-10T07:51:53.034-08:00",
  "name": "example-request",
  "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a",
  "count": 10,
  "resizeBy": 10,
  "requestedRunDuration": {
    "seconds": "6000",
    "nanos": 0
  },
  "state": "ACCEPTED",
  "status": {
    "lastAttempt": {
      "error": {
        "errors": [
          {
            "code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
            "message": "There are currently not enough resources available to fulfill the request.",
          },
          {
            "code": "QUOTA_EXCEEDED",
            "message": "Quota 'NVIDIA_A100_GPUS' exceeded. Limit: 1500 in region us-central1."
          }
        ]
      }
    }
  },
  "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/example-request",
  "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instanceGroupManagers/example-mig/resizeRequests/4247139565532196982"
}

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 mais de uma solicitação de redimensionamento por vez, use o console do Google Cloud ou a CLI gcloud.

Console

Para cancelar solicitações de redimensionamento em um MIG zonal, faça o seguinte:

  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

Para cancelar solicitações de redimensionamento em um MIG zonal, use o comando beta instance-groups managed resize-requests cancel.

gcloud beta compute instance-groups managed resize-requests cancel INSTANCE_GROUP_NAME \
    --resize-requests=RESIZE_REQUEST_NAMES \
    --zone=ZONE

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG zonal atual 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.

REST

Para cancelar uma solicitação de redimensionamento em um MIG zonal, faça uma solicitação POST para o método beta.instanceGroupManagerResizeRequests.cancel.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/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.

  • 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 mais de uma solicitação de redimensionamento por vez, use o console do Google Cloud ou a CLI gcloud.

Console

Para excluir solicitações de redimensionamento em um MIG zonal, faça o seguinte:

  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

Para excluir solicitações de redimensionamento em um MIG zonal, use o comando beta instance-groups managed resize-requests delete.

gcloud beta compute instance-groups managed resize-requests delete INSTANCE_GROUP_NAME \
    --resize-requests=RESIZE_REQUEST_NAMES \
    --zone=ZONE

Substitua:

  • INSTANCE_GROUP_NAME: o nome de um MIG zonal atual 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.

REST

Para excluir uma solicitação de redimensionamento em um MIG zonal, faça uma solicitação DELETE para o método beta.instanceGroupManagerResizeRequests.delete.

DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/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.

  • INSTANCE_GROUP_NAME: o nome do MIG;

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

A seguir