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


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

Ao conferir os detalhes de uma instância, você pode:

  • Conferir as configurações de desligamento suave. É possível verificar se o desligamento suave está ativado e por quanto tempo ele dura.

  • Monitorar o encerramento suave. Quando um encerramento suave está em andamento, é possível 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. 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 receber a permissão necessária para visualizar o desligamento suave 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 desligamento suave de uma instância de computação.

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

Conferir as configurações de desligamento suave

Para conferir as configurações de desligamento suave 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 VMs.

    Acessar instâncias de VM

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

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

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

gcloud

Para conferir as configurações de encerramento suave 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 suave 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 quanto tempo o período de encerramento otimizado dura em segundos. Se você não tiver especificado um período de desligamento personalizado ao ativar o desligamento suave na instância, o Compute Engine vai omitir o campo maxDuration e definir o período de desligamento suave como 10 minutos.

REST

Para acessar as configurações de encerramento suave em uma instância, faça uma solicitação GET para o método instances.get 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 suave 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 quanto tempo o período de encerramento otimizado dura em segundos. Se você não tiver especificado um período de desligamento personalizado ao ativar o desligamento suave na instância, o Compute Engine vai omitir o campo maxDuration e definir o período de desligamento suave como 10 minutos.

Monitorar o desligamento sem falhas

Para monitorar um desligamento suave 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 VMs.

    Acessar instâncias de VM

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

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

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

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

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

gcloud

Para monitorar um encerramento tranquilo 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 uma desativação suave 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 tranquilo 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 tranquilo. A instância permanece nesse estado até que você encerre manualmente o encerramento suave ou o período de encerramento suave expire.

    • STOPPING: o encerramento suave foi concluído, 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 suave em andamento em uma instância, faça uma solicitação GET para o método instances.get 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 uma desativação suave 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 tranquilo 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 tranquilo. A instância permanece nesse estado até que você encerre manualmente o encerramento suave ou o período de encerramento suave expire.

    • STOPPING: o encerramento suave foi concluído, 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. Consultar o servidor de metadados:

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

    Se uma desativação suave 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 tranquilo 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 desligamento normal. A instância permanece nesse estado até que você conclua manualmente o encerramento suave ou o período de encerramento suave expire.

      • STOPPING: o encerramento suave foi encerrado 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