Conferir o desligamento suave em uma instância do Compute Engine


Este documento explica como conferir as configurações e o progresso de um desligamento normal em uma instância do Compute Engine. Para saber mais sobre o encerramento gradual, consulte Visão geral do encerramento gradual.

Ao visualizar os detalhes de uma instância, é possível fazer o seguinte:

  • Ver as configurações de encerramento completo. Você pode verificar se o desligamento normal está ativado e quanto tempo ele dura.

  • Monitorar o encerramento completo. Quando um encerramento sem dificuldades está em andamento, você pode verificar o seguinte:

    • Quando o processo de encerramento normal expira.

    • Se uma operação de interrupção ou exclusão estiver em andamento.

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 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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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 a CLI gcloud.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Funções exigidas

Para receber a permissão necessária para conferir o encerramento normal de uma instância de computação, peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a permissão compute.instances.get on the project , que é necessária para conferir o encerramento normal de uma instância de computação.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Ver configurações de desligamento normal

Para conferir as configurações de desligamento normal em uma instância de computação, selecione uma das seguintes opções:

Console

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância.

    A página de detalhes da instância é aberta na guia Detalhes.

  3. Para verificar as configurações de desligamento otimizado, na seção Políticas de disponibilidade, confira o valor do campo Duração máxima do desligamento otimizado. Esse campo mostra o período de desligamento normal. Se mostrar um hífen (-), o desligamento normal estará desativado.

gcloud

Para conferir as configurações de encerramento normal em uma instância, use o comando gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância.

  • ZONE: a zona em que a instância existe.

Se o desligamento normal estiver ativado, a saída será semelhante a esta:

...
scheduling:
  ...
  gracefulShutdown:
    enabled: true
    maxDuration:
      seconds: 'MAX_DURATION'
  ...
...

A saída inclui o valor MAX_DURATION. Esse valor indica a duração do período de encerramento normal em segundos. Se você não especificou um período de desligamento personalizado ao ativar o desligamento normal na instância, o Compute Engine omite o campo maxDuration e define o período de desligamento normal como 10 minutos.

REST

Para conferir as configurações de encerramento sem dificuldades em uma instância, faça uma solicitação GET para o método instances.get da versão Beta:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a instância.

  • ZONE: a zona em que a instância existe.

  • INSTANCE_NAME: o nome da instância.

Se o desligamento normal estiver ativado, a saída será semelhante a esta:

{
  ...
  "scheduling": {
    ...
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  },
  ...
}

A saída inclui o valor MAX_DURATION. Esse valor indica a duração do período de encerramento normal em segundos. Se você não especificou um período de desligamento personalizado ao ativar o desligamento normal na instância, o Compute Engine omite o campo maxDuration e define o período de desligamento normal como 10 minutos.

Monitorar o encerramento sem dificuldades

Para monitorar um desligamento normal em andamento em uma instância de computação, selecione uma das seguintes opções:

Console

  1. No Google Cloud console, acesse a página Instâncias de VM:

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância.

    A página de detalhes da instância é aberta na guia Detalhes.

  3. Se um encerramento sem dificuldades estiver em andamento, na seção Informações básicas, verifique os seguintes campos:

    • Status: esse campo mostra o estado da sua instância. Durante um encerramento normal, esse campo mostra Parada pendente e um timer de contagem regressiva. O cronômetro faz a contagem regressiva até o momento em que o encerramento normal termina.

    • Estado de destino: este campo mostra se o Compute Engine está parando (Parada) ou excluindo (Excluída) a instância.

gcloud

Para monitorar um encerramento normal em andamento em uma instância, use o comando gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância.

  • ZONE: a zona em que a instância existe.

Se um desligamento normal estiver em andamento, a saída será semelhante a esta:

...
resourceStatus:
  ...
  shutdownDetails:
    maxDuration:
      seconds: 'MAX_DURATION'
    requestTimestamp: 'REQUEST_TIMESTAMP'
    stopState: STOP_STATE
    targetState: TARGET_STATE
...
status: PENDING_STOP
...

Esta saída inclui os seguintes valores:

  • MAX_DURATION: a duração do período de desligamento normal em segundos. Depois que o Compute Engine define STOP_STATE como STOPPING, ele exclui o campo maxDuration.

  • REQUEST_TIMESTAMP: o carimbo de data/hora em que o STOP_STATE começou.

  • STOP_STATE: a fase de interrupção da instância. O valor pode ser um dos seguintes:

    • PENDING_STOP: o Compute Engine iniciou o desligamento normal. A instância permanece nesse estado até que você encerre manualmente o desligamento normal ou o período de desligamento normal expire.

    • STOPPING: o encerramento normal foi concluído, e o Compute Engine continua com a operação de parada ou exclusão.

  • TARGET_STATE: se o Compute Engine está interrompendo (STOPPED) ou excluindo (DELETED) a instância.

Se uma operação de interrupção estiver em execução, depois que o Compute Engine definir o campo status como TERMINATE, ele vai excluir o campo shutdownDetails.

REST

Para monitorar um encerramento sem dificuldades em andamento em uma instância, faça uma solicitação GET para o método Beta instances.get:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a instância.

  • ZONE: a zona em que a instância existe.

  • INSTANCE_NAME: o nome da instância.

Se um desligamento normal estiver em andamento, a saída será semelhante a esta:

{
  ...
  "resourceStatus": {
    ...
    "shutdownDetails": {
      "maxDuration": {
        "seconds": "MAX_DURATION"
      },
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
  },
  ...
  "status": "PENDING_STOP",
  ...
}

Esta saída inclui os seguintes valores:

  • MAX_DURATION: a duração do período de desligamento normal em segundos. Depois que o Compute Engine define STOP_STATE como STOPPING, ele exclui o campo maxDuration.

  • REQUEST_TIMESTAMP: o carimbo de data/hora em que o STOP_STATE começou.

  • STOP_STATE: a fase de interrupção da instância. O valor pode ser um dos seguintes:

    • PENDING_STOP: o Compute Engine iniciou o desligamento normal. A instância permanece nesse estado até que você encerre manualmente o desligamento normal ou o período de desligamento normal expire.

    • STOPPING: o encerramento normal foi concluído, e o Compute Engine continua com a operação de parada ou exclusão.

  • TARGET_STATE: se o Compute Engine está interrompendo (STOPPED) ou excluindo (DELETED) a instância.

Se uma operação de interrupção estiver em execução, depois que o Compute Engine definir o campo status como TERMINATE, ele vai excluir o campo shutdownDetails.

Servidor de metadados

  1. Conecte-se à instância.

  2. Consulte o servidor de metadados:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
    

    Se um desligamento normal estiver em andamento, a saída será semelhante a esta:

    {
      "maxDuration": "MAX_DURATION",
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
    

    A saída inclui os seguintes valores:

    • MAX_DURATION: a duração do período de desligamento normal em segundos. Depois que o Compute Engine define STOP_STATE como STOPPING, ele exclui o campo maxDuration.

    • REQUEST_TIMESTAMP: o carimbo de data/hora em que o STOP_STATE começou.

    • STOP_STATE: a fase de interrupção da instância. O papel pode ser um dos seguintes:

      • PENDING_STOP: o Compute Engine iniciou o encerramento normal. A instância permanece nesse estado até que você encerre manualmente o desligamento normal ou o período de desligamento normal expire.

      • STOPPING: o encerramento normal foi concluído, e o Compute Engine continua com a operação de parada ou exclusão.

    • TARGET_STATE: se o Compute Engine está interrompendo (STOPPED) ou excluindo (DELETED) a instância.

A seguir