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

Neste documento, explicamos como visualizar as configurações e o progresso de um encerramento completo em uma instância do Compute Engine. Para saber mais sobre o encerramento completo, consulte Visão geral do encerramento completo.

Ao visualizar os detalhes de uma instância, você pode fazer o seguinte:

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

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

    • Quando o processo de encerramento completo 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. Com isso, você confirma sua identidade para acesso a Google Cloud serviços e APIs do. Para executar código ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

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

    Console

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

    gcloud

    1. Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • REST

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

      Instale a Google Cloud CLI.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para receber a permissão necessária para visualizar o encerramento completo de uma instância de computação, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (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 compute.instances.get no projeto permissão, que é necessária para visualizar o encerramento completo de uma instância de computação.

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

Visualizar as configurações de encerramento completo

Para visualizar as configurações de encerramento completo em uma instância de computação, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud , 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 será aberta na guia Detalhes.

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

gcloud

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

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 está.

Se o encerramento completo 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 completo em segundos. Se você não especificou um período de encerramento personalizado ao ativar o encerramento completo na instância, o Compute Engine omite o campo maxDuration e define o período de encerramento completo como 10 minutos.

REST

Para visualizar as configurações de encerramento completo em uma instância, faça uma GET solicitação 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 está.

  • INSTANCE_NAME: o nome da instância.

Se o encerramento completo 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 completo em segundos. Se você não especificou um período de encerramento personalizado ao ativar o encerramento completo na instância, o Compute Engine omite o campo maxDuration e define o período de encerramento completo como 10 minutos.

Monitorar o encerramento completo

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

Console

  1. No console do Google Cloud , 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 será aberta na guia Detalhes.

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

    • Status: esse campo mostra o estado da instância. Durante um encerramento completo, esse campo mostra Interrupção pendente e um timer de contagem regressiva. O timer faz a contagem regressiva até o momento em que o encerramento completo termina.

    • Estado de destino: esse campo mostra se o Compute Engine está interrompendo (Interrompido) ou excluindo (Excluído) a instância.

gcloud

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

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 está.

Se um encerramento completo 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 encerramento completo 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 foi iniciado.

  • 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 completo. A instância permanece nesse estado até que você encerre manualmente o encerramento completo ou o período de encerramento completo expire.

    • STOPPING: o encerramento completo terminou e o Compute Engine continua com a operação de interrupção 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 excluirá o campo shutdownDetails.

REST

Para monitorar um encerramento completo em andamento 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 está.

  • INSTANCE_NAME: o nome da instância.

Se um encerramento completo 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 encerramento completo 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 foi iniciado.

  • 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 completo. A instância permanece nesse estado até que você encerre manualmente o encerramento completo ou o período de encerramento completo expire.

    • STOPPING: o encerramento completo terminou e o Compute Engine continua com a operação de interrupção 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 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 encerramento completo 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 encerramento completo 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 foi iniciado.

    • 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 completo. A instância permanece nesse estado até que você encerre manualmente o encerramento completo ou o período de encerramento completo expire.

      • STOPPING: o encerramento completo terminou e o Compute Engine continua com a operação de interrupção ou exclusão.

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

A seguir