Configure uma verificação de integridade e recuperação automática baseada em aplicativo


Este documento descreve como configurar uma verificação de integridade baseada em aplicativo para recuperação automática de VMs em um grupo gerenciado de instâncias (MIG). Ele também descreve como fazer o seguinte: usar uma verificação de integridade sem recuperação automática, remover uma verificação de integridade, visualizar a política de recuperação automática e verificar o estado de integridade de cada VM.

Você pode configurar uma verificação de integridade baseada em aplicativo para verificar se seu aplicativo em uma VM está respondendo conforme esperado. Se a verificação de integridade configurada detectar que seu aplicativo em uma VM não está respondendo, o MIG marcará essa VM como não íntegra e a reparará. O reparo de uma VM com base em uma verificação de integridade baseada em aplicativo é chamado de recuperação automática .

Você também pode desativar os reparos em um MIG para poder usar uma verificação de integridade sem acionar a recuperação automática.

Para saber mais sobre reparos em um MIG, consulte Sobre o reparo de VMs para alta disponibilidade .

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. Terraform

      Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.

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

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      Confira mais informações em Set up authentication for a local development environment.

      REST

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

        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.

Preços

Quando você configura uma verificação de integridade baseada em aplicativo, sempre que o estado de integridade de uma VM muda, por padrão, o Compute Engine grava uma entrada de registro no Cloud Logging .O Cloud Logging oferece uma cota gratuita por mês, após a qual o registro é cobrado por volume de dados. Para evitar custos, você pode desabilitar os logs de alterações do estado de integridade.

Configure uma verificação de integridade e recuperação automática baseada em aplicativo

Para configurar uma verificação de integridade e recuperação automática baseada em aplicativo em um MIG, você deve fazer o seguinte:

  1. Crie uma verificação de integridade , se ainda não o fez.
  2. Configure uma política de recuperação automática no MIG para aplicar a verificação de integridade.

Crie uma verificação de integridade

Você pode aplicar uma única verificação de integridade a no máximo 50 MIGs. Se você tiver mais de 50 grupos, crie diversas verificações de integridade.

O exemplo a seguir mostra como criar uma verificação de integridade para recuperação automática. Você pode criar uma verificação de integridade regional ou global para recuperação automática em MIGs. Neste exemplo, você cria uma verificação de integridade global que procura uma resposta do servidor web na porta 80 . Para permitir que as sondagens de verificação de integridade cheguem ao servidor web, configure uma regra de firewall.

Console

  1. Crie uma verificação de integridade para recuperação automática que seja mais conservadora do que uma verificação de integridade de balanceamento de carga .

    Por exemplo, crie uma verificação de integridade que procure uma resposta na porta 80 e que possa tolerar alguma falha antes de marcar as VMs como UNHEALTHY e fazer com que elas sejam recriadas. Neste exemplo, uma VM será marcada como íntegra se a verificação de integridade retornar com êxito uma vez. A VM será marcada como não íntegra se a verificação de integridade retornar sem êxito 3 vezes consecutivas.

    1. No console do Google Cloud, acesse a página Criar uma verificação de integridade .

      Vá para Criar uma verificação de integridade

    2. Dê um nome à verificação de integridade, como example-check .

    3. Selecione um escopo . Você pode selecionar Regional ou Global . Para este exemplo, selecione Global .

    4. Para Protocolo , certifique-se de que HTTP esteja selecionado.

    5. Para Porta , insira 80 .

    6. Na seção Critérios de integridade , forneça os seguintes valores:

      1. Para Intervalo de verificação , insira 5 .
      2. Para Tempo limite , insira 5 .
      3. Defina um limite íntegro para determinar quantas verificações de integridade consecutivas bem-sucedidas devem ser retornadas antes que uma VM não íntegra seja marcada como íntegra. Insira 1 para este exemplo.
      4. Defina um limite não íntegro para determinar quantas verificações de integridade malsucedidas consecutivas devem ser retornadas antes que uma VM íntegra seja marcada como não íntegra. Insira 3 para este exemplo.
    7. Clique em Criar para criar a verificação de funcionamento.

  2. Crie uma regra de firewall para permitir que sondagens de verificação de integridade se conectem ao seu aplicativo.

    As sondagens de verificação de integridade vêm de endereços nos intervalos 130.211.0.0/22 ​​e 35.191.0.0/16 , portanto, certifique-se de que as regras de firewall da sua rede permitam a conexão da verificação de integridade. Neste exemplo, o MIG usa a rede default e suas VMs estão escutando na porta 80 . Se a porta 80 ainda não estiver aberta na rede padrão, crie uma regra de firewall.

    1. No console do Google Cloud, acesse a página Políticas de firewall .

      Vá para políticas de firewall

    2. Clique em Criar regra de firewall .

    3. Insira um nome para a regra de firewall. Por exemplo, allow-health-check .

    4. Para Rede , selecione a rede default .

    5. Para Destinos , selecione All instances in the network .

    6. Em Filtro de origem , selecione IPv4 ranges .

    7. Para intervalos IPv4 de origem , insira 130.211.0.0/22 ​​e 35.191.0.0/16 .

    8. Em Protocolos e portas , selecione Protocolos e portas especificados e faça o seguinte:

      1. Selecione TCP .
      2. No campo Portas , insira 80 .
    9. Clique em Criar .

gcloud

  1. Crie uma verificação de integridade para recuperação automática que seja mais conservadora do que uma verificação de integridade de balanceamento de carga .

    Por exemplo, crie uma verificação de integridade que procure uma resposta na porta 80 e que possa tolerar alguma falha antes de marcar as VMs como UNHEALTHY e fazer com que elas sejam recriadas. Neste exemplo, a VM será marcada como íntegra se retornar com êxito uma vez. A VM será marcada como não íntegra se retornar sem êxito 3 vezes consecutivas. O comando a seguir cria uma verificação de integridade global.

    gcloud compute health-checks create http example-check --port 80 \
       --check-interval 30s \
       --healthy-threshold 1 \
       --timeout 10s \
       --unhealthy-threshold 3 \
       --global
    
  2. Crie uma regra de firewall para permitir que sondagens de verificação de integridade se conectem ao seu aplicativo.

    As sondagens de verificação de integridade vêm de endereços nos intervalos 130.211.0.0/22 ​​e 35.191.0.0/16 , portanto, certifique-se de que suas regras de firewall permitam a conexão da verificação de integridade. Neste exemplo, o MIG usa a rede default e suas VMs escutam na porta 80 . Se a porta 80 ainda não estiver aberta na rede padrão, crie uma regra de firewall.

    gcloud compute firewall-rules create allow-health-check \
        --allow tcp:80 \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --network default
    

Terraforma

  1. Crie uma verificação de integridade usando o recurso google_compute_http_health_check .

    Por exemplo, crie uma verificação de integridade que procure uma resposta na porta 80 e que possa tolerar alguma falha antes de marcar as VMs como UNHEALTHY e fazer com que elas sejam recriadas. Neste exemplo, uma VM será marcada como íntegra se retornar com êxito uma vez. A VM será marcada como não íntegra se retornar sem êxito 3 vezes consecutivas. A solicitação a seguir cria uma verificação de integridade global.

    resource "google_compute_http_health_check" "default" {
      name                = "example-check"
      timeout_sec         = 10
      check_interval_sec  = 30
      healthy_threshold   = 1
      unhealthy_threshold = 3
      port                = 80
    }
  2. Crie um firewall usando o recurso google_compute_firewall .

    As sondagens de verificação de integridade vêm de endereços nos intervalos 130.211.0.0/22 ​​e 35.191.0.0/16 , portanto, certifique-se de que suas regras de firewall permitam a conexão da verificação de integridade. Neste exemplo, o MIG usa a rede default e suas VMs estão escutando na porta 80 . Se a porta 80 ainda não estiver aberta na rede padrão, crie uma regra de firewall.

    resource "google_compute_firewall" "default" {
      name          = "allow-health-check"
      network       = "default"
      source_ranges = ["130.211.0.0/22", "35.191.0.0/16"]
      allow {
        protocol = "tcp"
        ports    = [80]
      }
    }

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform .

DESCANSAR

  1. Crie uma verificação de integridade para recuperação automática que seja mais conservadora do que uma verificação de integridade de balanceamento de carga.

    Por exemplo, crie uma verificação de integridade que procure uma resposta na porta 80 e que possa tolerar alguma falha antes de marcar as VMs como UNHEALTHY e fazer com que elas sejam recriadas. Neste exemplo, uma VM será marcada como íntegra se retornar com êxito uma vez. A VM será marcada como não íntegra se retornar sem êxito 3 vezes consecutivas. A solicitação a seguir cria uma verificação de integridade global.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/healthChecks
    
    {
     "name": "example-check",
     "type": "http",
     "port": 80,
     "checkIntervalSec": 30,
     "healthyThreshold": 1,
     "timeoutSec": 10,
     "unhealthyThreshold": 3
    }
    
  2. Crie uma regra de firewall para permitir que sondagens de verificação de integridade se conectem ao seu aplicativo.

    As sondagens de verificação de integridade vêm de endereços nos intervalos 130.211.0.0/22 ​​e 35.191.0.0/16 , portanto, certifique-se de que suas regras de firewall permitam a conexão da verificação de integridade. Neste exemplo, o MIG usa a rede default e suas VMs estão escutando na porta 80 . Se a porta 80 ainda não estiver aberta na rede padrão, crie uma regra de firewall.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
    
    {
     "name": "allow-health-check",
     "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
     "sourceRanges": [
      "130.211.0.0/22",
      "35.191.0.0/16"
     ],
     "allowed": [
      {
       "ports": [
        "80"
       ],
       "IPProtocol": "tcp"
      }
     ]
    }
    

    Substitua PROJECT_ID pelo ID do seu projeto .

Configurar uma política de recuperação automática em um MIG

Em um MIG, você pode configurar apenas uma política de recuperação automática para aplicar uma verificação de integridade.

Você pode usar uma verificação de integridade regional ou global para recuperação automática em MIGs. As verificações de saúde regionais reduzem as dependências entre regiões e ajudam a alcançar a residência dos dados. As verificações de integridade globais são convenientes se você quiser usar a mesma verificação de integridade para MIGs em diversas regiões.

Antes de configurar uma política de recuperação automática:

  • Se você ainda não tiver uma verificação de integridade, crie uma .
  • Se você quiser evitar o falso acionamento da recuperação automática ao configurar uma nova verificação de integridade, primeiro desative os reparos no MIG e, em seguida, configure a política de recuperação automática.

Console

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

    Vá para grupos de instâncias

  2. Na coluna Nome da lista, clique no nome do MIG no qual deseja aplicar a verificação de integridade.

  3. Clique em Editar para modificar este MIG.

  4. Na seção Ciclo de vida da instância de VM , em Autohealing , selecione uma verificação de integridade global ou regional.

  5. Altere ou mantenha a configuração do atraso inicial .

    O atraso inicial é o número de segundos que uma nova VM leva para inicializar e executar seu script de inicialização. Durante o período de atraso inicial de uma VM, o MIG ignora verificações de integridade malsucedidas porque a VM pode estar no processo de inicialização. Isso evita que o MIG recrie uma VM prematuramente. Se a verificação de integridade receber uma resposta íntegra durante o atraso inicial, isso indicará que o processo de inicialização foi concluído e a VM está pronta. O temporizador de atraso inicial começa quando o campo currentAction da VM muda para VERIFYING . O valor do atraso inicial deve estar entre 0 e 3600 segundos. No console, o valor padrão é 300 segundos.

  6. Clique em Salvar para aplicar suas alterações.

gcloud

Para configurar a política de recuperação automática em um MIG existente, use o comando update .

Por exemplo, use o seguinte comando para configurar a política de recuperação automática em um MIG zonal existente:

gcloud compute instance-groups managed update MIG_NAME \
    --health-check HEALTH_CHECK_URL \
    --initial-delay INITIAL_DELAY \
    --zone ZONE

Para configurar a política de recuperação automática ao criar um MIG, use o comando create .

Por exemplo, use o seguinte comando para configurar a política de recuperação automática ao criar um MIG zonal:

gcloud compute instance-groups managed create MIG_NAME \
    --size SIZE \
    --template INSTANCE_TEMPLATE_URL \
    --health-check HEALTH_CHECK_URL \
    --initial-delay INITIAL_DELAY \
    --zone ZONE

Substitua o seguinte:

  • MIG_NAME : o nome do MIG no qual você deseja configurar a recuperação automática.
  • SIZE : o número de VMs no grupo.
  • INSTANCE_TEMPLATE_URL : o URL parcial do modelo de instância que você deseja usar para criar as VMs no grupo. Por exemplo:
    • Modelo de instância regional: projects/example-project/regions/us-central1/instanceTemplates/example-template .
    • Modelo de instância global: projects/example-project/global/instanceTemplates/example-template .
  • HEALTH_CHECK_URL : o URL parcial da verificação de integridade que você deseja configurar para recuperação automática. Se quiser usar uma verificação de funcionamento regional, você deverá fornecer o URL parcial da verificação de funcionamento regional. Por exemplo:
    • Verificação de saúde regional: projects/example-project/regions/us-central1/healthChecks/example-health-check .
    • Verificação de integridade global: projects/example-project/global/healthChecks/example-health-check .
  • INITIAL_DELAY : o número de segundos que uma nova VM leva para inicializar e executar seu script de inicialização. Durante o período de atraso inicial de uma VM, o MIG ignora verificações de integridade malsucedidas porque a VM pode estar no processo de inicialização. Isso evita que o MIG recrie uma VM prematuramente. Se a verificação de integridade receber uma resposta íntegra durante o atraso inicial, isso indicará que o processo de inicialização foi concluído e a VM está pronta. O temporizador de atraso inicial começa quando o campo currentAction da VM muda para VERIFYING . O valor do atraso inicial deve estar entre 0 e 3600 segundos. O valor padrão é 0 .
  • ZONE : A zona onde o MIG está localizado. Para um MIG regional, use o sinalizador --region .

Terraforma

Para configurar uma política de recuperação automática em um MIG, use o bloco auto_healing_policies .

O exemplo a seguir configura a política de recuperação automática em um MIG zonal. Para obter mais informações sobre o recurso usado no exemplo, consulte google_compute_instance_group_manager . Para um MIG regional, use o recurso google_compute_region_instance_group_manager .

resource "google_compute_instance_group_manager" "default" {
  name               = "igm-with-hc"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  auto_healing_policies {
    health_check      = google_compute_http_health_check.default.id
    initial_delay_sec = 30
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform .

DESCANSAR

Para configurar a política de recuperação automática em um MIG existente, use o método patch da seguinte maneira:

Por exemplo, faça a seguinte chamada para configurar a recuperação automática em um MIG zonal existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "autoHealingPolicies": [
  {
    "healthCheck": "HEALTH_CHECK_URL",
    "initialDelaySec": INITIAL_DELAY
  }
  ]
}

Para configurar a política de recuperação automática ao criar um MIG, use o método insert da seguinte maneira:

Por exemplo, faça a seguinte chamada para configurar a política de recuperação automática ao criar um MIG zonal:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "MIG_NAME",
  "targetSize": SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL"
  "autoHealingPolicies": [
    {
      "healthCheck": "HEALTH_CHECK_URL",
      "initialDelaySec": INITIAL_DELAY
    }
  ],
}

Substitua o seguinte:

  • PROJECT_ID : o ID do seu projeto .
  • MIG_NAME : o nome do MIG no qual você deseja configurar a recuperação automática.
  • SIZE : o número de VMs no grupo.
  • INSTANCE_TEMPLATE_URL : o URL parcial do modelo de instância que você deseja usar para criar as VMs no grupo. Por exemplo:
    • Modelo de instância regional: projects/example-project/regions/us-central1/instanceTemplates/example-template .
    • Modelo de instância global: projects/example-project/global/instanceTemplates/example-template .
  • HEALTH_CHECK_URL : o URL parcial da verificação de integridade que você deseja configurar para recuperação automática. Por exemplo:
    • Verificação de saúde regional: projects/example-project/regions/us-central1/healthChecks/example-health-check .
    • Verificação de integridade global: projects/example-project/global/healthChecks/example-health-check .
  • INITIAL_DELAY : o número de segundos que uma nova VM leva para inicializar e executar seu script de inicialização. Durante o período de atraso inicial de uma VM, o MIG ignora verificações de integridade malsucedidas porque a VM pode estar no processo de inicialização. Isso evita que o MIG recrie uma VM prematuramente. Se a verificação de integridade receber uma resposta íntegra durante o atraso inicial, isso indicará que o processo de inicialização foi concluído e a VM está pronta. O temporizador de atraso inicial começa quando o campo currentAction da VM muda para VERIFYING . O valor do atraso inicial deve estar entre 0 e 3600 segundos. O valor padrão é 0 .
  • ZONE : A zona onde o MIG está localizado. Para um MIG regional, use regions/ REGION na URL.

Depois que a configuração da recuperação automática for concluída, poderá levar 10 minutos até que a recuperação automática comece a monitorar as VMs no grupo. Após o início do monitoramento, o Compute Engine começa a marcar as VMs como íntegras (ou então as recria) com base na configuração de recuperação automática. Por exemplo, se você configurar um atraso inicial de 5 minutos, um intervalo de verificação de integridade de 1 minuto e um limite de integridade de 1 verificação, a linha do tempo terá a seguinte aparência:

  • Atraso de 10 minutos antes que a recuperação automática comece a monitorar VMs no grupo
  • + 5 minutos para o atraso inicial configurado
  • + 1 minuto para o intervalo de verificação * limite íntegro (60s * 1)
  • = 16 minutos antes da VM ser marcada como íntegra ou ser recriada

Se você desativou os reparos no MIG antes de configurar a política de recuperação automática, poderá monitorar os estados de integridade da VM para confirmar se a verificação de integridade está funcionando conforme o esperado e, em seguida, configurar o MIG novamente para reparar VMs .

Use uma verificação de integridade sem recuperação automática

Você pode usar a verificação de integridade configurada em um MIG sem recuperação automática desativando os reparos no MIG . Isso é útil em cenários em que você deseja usar a verificação de funcionamento apenas para monitorar o funcionamento do seu aplicativo ou quando deseja implementar sua própria lógica de reparo com base na verificação de funcionamento.

Para fazer com que o MIG volte a reparar VMs não íntegras, consulte Definir um MIG para reparar VMs com falha e não íntegras .

Remover uma verificação de integridade

Você pode remover uma verificação de integridade configurada em uma política de recuperação automática da seguinte maneira:

Console

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

    Vá para grupos de instâncias

    1. Clique no nome do MIG do qual deseja remover a verificação de integridade.
    2. Clique em Editar para modificar este MIG.
    3. Na seção Ciclo de vida da instância de VM , em Autohealing , selecione No health check .
    4. Clique em Salvar para aplicar as alterações.

gcloud

Para remover a configuração de verificação de integridade em uma política de recuperação automática, no comando update use o sinalizador --clear-autohealing da seguinte maneira:

gcloud compute instance-groups managed update MIG_NAME \
    --clear-autohealing

Substitua MIG_NAME pelo nome de um MIG.

DESCANSAR

Para remover a configuração da verificação de integridade em uma política de recuperação automática, defina a política de recuperação automática com um valor vazio.

Por exemplo, para remover a verificação de integridade em um MIG zonal, faça a seguinte solicitação:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "autoHealingPolicies": [
    {}
  ]
}

Substitua o seguinte:

  • PROJECT_ID : o ID do seu projeto .
  • MIG_NAME : o nome do MIG no qual você deseja configurar a recuperação automática.
  • ZONE : A zona onde o MIG está localizado. Para um MIG regional, use regions/ REGION .

Ver a política de recuperação automática em um MIG

Você pode visualizar a política de recuperação automática de um MIG da seguinte maneira:

Console

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

    Vá para grupos de instâncias

  2. Clique no nome do MIG cujo você deseja visualizar a política de recuperação automática.

  3. Vá para a guia Detalhes .

  4. Na seção Ciclo de vida da instância de VM , o campo Autohealing exibe a verificação de integridade e o atraso inicial configurado na política de autohealing.

gcloud

Para visualizar a política de recuperação automática em um MIG, use o seguinte comando:

gcloud compute instance-groups managed describe MIG_NAME \
    --format="(autoHealingPolicies)"

Substitua MIG_NAME pelo nome de um MIG.

A seguir está um exemplo de saída:

autoHealingPolicies:
  healthCheck: https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check
  initialDelaySec: 300

DESCANSAR

Para visualizar a política de recuperação automática em um MIG, use os métodos REST da seguinte forma:

Por exemplo, faça a seguinte solicitação para visualizar a política de recuperação automática em um MIG zonal:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

No corpo da resposta, verifique o objeto autoHealingPolicies[] .

A seguir está um exemplo de resposta:

{
  ...
  "autoHealingPolicies": [
    {
      "healthCheck": "https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check",
      "initialDelaySec": 300
    }
  ],
  ...
}

Substitua o seguinte:

  • PROJECT_ID : o ID do seu projeto .
  • MIG_NAME : o nome do MIG no qual você deseja configurar a recuperação automática.
  • ZONE : A zona onde o MIG está localizado. Para um MIG regional, use regions/ REGION .

Verifique o status

Depois de configurar uma verificação de integridade baseada em aplicativo em um MIG, você poderá verificar se uma VM está em execução e se seu aplicativo está respondendo das seguintes maneiras:

Verifique se as VMs estão íntegras

Se você configurou uma verificação de integridade baseada em aplicativo em seu MIG, poderá revisar o estado de integridade de cada instância gerenciada .

Inspecione os estados de integridade da sua instância gerenciada para:

  • Identifique VMs não íntegras que não estão sendo reparadas. Uma VM pode não ser reparada imediatamente, mesmo que tenha sido diagnosticada como não íntegra nas seguintes situações:
    • A VM ainda está inicializando e seu atraso inicial ainda não passou.
    • Uma parcela significativa de instâncias não saudáveis ​​está sendo reparada. O MIG atrasa ainda mais a recuperação automática para garantir que o grupo continue executando um subconjunto de instâncias.
  • Detecte erros de configuração de verificação de integridade. Por exemplo, você poderá detectar regras de firewall mal configuradas ou um endpoint de verificação de integridade do aplicativo inválido se a instância relatar um estado de integridade de TIMEOUT .
  • Determine o valor de atraso inicial a ser configurado medindo a quantidade de tempo entre o momento em que a VM faz a transição para um status RUNNING e o momento em que a VM faz a transição para um estado de integridade HEALTHY . Você pode medir essa lacuna pesquisando o método list-instances ou observando o tempo entre a operação instances.insert e o primeiro sinal íntegro recebido.

Use o console , a ferramenta de linha de comando gcloud ou REST para visualizar os estados de integridade.

Console

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

    Vá para Grupos de instâncias .

  2. Na coluna Nome da lista, clique no nome do MIG que você deseja examinar. Uma página é aberta com as propriedades do grupo de instâncias e uma lista de VMs incluídas no grupo.

  3. Se uma VM não estiver íntegra, você poderá ver seu estado de integridade na coluna Status da verificação de integridade .

gcloud

Use o subcomando list-instances .

gcloud compute instance-groups managed list-instances instance-group
NAME              ZONE                  STATUS   HEALTH_STATE  ACTION  INSTANCE_TEMPLATE                            VERSION_NAME  LAST_ERROR
igm-with-hc-fvz6  europe-west1          RUNNING  HEALTHY       NONE    my-template
igm-with-hc-gtz3  europe-west1          RUNNING  HEALTHY       NONE    my-template

A coluna HEALTH_STATE mostra o estado de integridade de cada VM.

DESCANSAR

Para um MIG regional, construa uma solicitação POST para o método listManagedInstances :

POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group/listManagedInstances

Para um MIG zonal, use o método listManagedInstances do MIG zonal:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group/listManagedInstances

A solicitação retorna uma resposta semelhante à seguinte, que inclui um campo instanceHealth para cada instância gerenciada.

{
 "managedInstances": [
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-5485",
   "instanceStatus": "RUNNING",
   "currentAction": "NONE",
   "lastAttempt": {
   },
   "id": "6159431761228150698",
   "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template",
   "version": {
    "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template"
   },
   "instanceHealth": [
    {
     "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check",
     "detailedHealthState": "HEALTHY"
    }
   ]
  },
  {
   "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-sfdp",
   "instanceStatus": "STOPPING",
   "currentAction": "DELETING",
   "lastAttempt": {
   },
   "id": "6622324799312181783",
   "instanceHealth": [
    {
     "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check",
     "detailedHealthState": "TIMEOUT"
    }
   ]
  }
 ]
}

Estados de saúde

Os seguintes estados de integridade da VM estão disponíveis:

  • HEALTHY : A VM está acessível, uma conexão com o endpoint de verificação de integridade do aplicativo pode ser estabelecida e a resposta está em conformidade com os requisitos definidos pela verificação de integridade.
  • DRAINING : A VM está sendo drenada. As conexões existentes com a VM têm tempo para serem concluídas, mas novas conexões estão sendo recusadas.
  • UNHEALTHY : A VM está acessível, mas não está em conformidade com os requisitos definidos pela verificação de integridade.
  • TIMEOUT : A VM está inacessível, uma conexão com o endpoint de verificação de integridade do aplicativo não pode ser estabelecida ou o servidor em uma VM não responde dentro do tempo limite especificado. Por exemplo, isso pode ser causado por regras de firewall mal configuradas ou por um aplicativo de servidor sobrecarregado em uma VM.
  • UNKNOWN : O sistema de verificação de integridade não tem conhecimento da VM ou sua integridade não é conhecida no momento. Pode levar 10 minutos para que o monitoramento comece em novas VMs em um MIG.

Novas VMs retornam um estado UNHEALTHY até serem verificadas pelo sistema de verificação de integridade.

Se uma VM será reparada dependerá do seu estado de integridade:

  • Se uma VM tiver um estado de integridade UNHEALTHY ou TIMEOUT e tiver passado o período de inicialização, o MIG tentará repará-la imediatamente.
  • Se uma VM tiver um estado de integridade UNKNOWN , o MIG não a reparará imediatamente. Isto evita uma reparação desnecessária de uma VM para a qual o sinal de verificação de funcionamento está temporariamente indisponível.

As tentativas de recuperação automática podem ser atrasadas se:

  • Uma VM permanece não íntegra após vários reparos consecutivos.
  • Existe uma parcela global significativa de VMs não íntegras no grupo.

Queremos saber mais sobre seus casos de uso, desafios ou comentários sobre os valores do estado de integridade da VM. Você pode compartilhar seus comentários com nossa equipe em mig-discuss@google.com .

Verifique as ações atuais nas VMs

Quando um MIG está no processo de criação de uma instância de VM, o MIG define o campo currentAction somente leitura dessa instância como CREATING . Se uma política de recuperação automática estiver anexada ao grupo, depois que a VM for criada e executada, o MIG definirá a ação atual da instância como VERIFYING e o verificador de integridade começará a investigar o aplicativo da VM. Se o aplicativo passar nessa verificação de integridade inicial dentro do tempo necessário para iniciar o aplicativo, a VM será verificada e o MIG alterará o campo currentAction da VM para NONE .

Para verificar as ações atuais nas VMs, consulte Visualizar as ações atuais nas VMs .

Verifique se o MIG está estável

No nível do grupo, o Compute Engine preenche um campo somente leitura chamado status que contém uma sinalização isStable .

Se todas as VMs do grupo estiverem em execução e íntegras (ou seja, o campo currentAction para cada instância gerenciada estiver definido como NONE ), o MIG definirá o campo status.isStable como true . Lembre-se que a estabilidade de um MIG depende de configurações de grupo além da política de autocura; por exemplo, se o seu grupo for dimensionado automaticamente e estiver sendo ampliado ou reduzido, o MIG definirá o campo status.isStable como false devido à operação do dimensionador automático.

Para verificar os valores do campo status.isStable do seu MIG, consulte Verificar se um MIG é estável .

Ver o histórico de operações de recuperação automática

Você pode usar a CLI gcloud ou o REST para visualizar eventos de recuperação automática anteriores.

gcloud

Use o comando gcloud compute operations list com um filtro para ver apenas os eventos de reparo de recuperação automática no seu projeto.

gcloud compute operations list --filter='operationType~compute.instances.repair.*'

Para obter mais informações sobre uma operação de reparo específica, use o comando describe . Por exemplo:

gcloud compute operations describe repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5 --zone us-east1-b

DESCANSAR

Para MIGs regionais, envie uma solicitação GET para o recurso regionOperations e inclua um filtro para definir o escopo da lista de saída para eventos compute.instances.repair.* .

GET https://compute.googleapis.com/compute/v1/projects/project-id/region/region/operations?filter=operationType+%3D+%22compute.instances.repair.*%22

Para MIGs zonais, use o recurso zoneOperations .

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations?filter=operationType+%3D+%22compute.instances.repair.*%22

Para obter mais informações sobre uma operação de reparo específica, envie uma solicitação GET para essa operação específica. Por exemplo:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations/repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5

O que constitui uma boa verificação de integridade de autocura

As verificações de integridade usadas para recuperação automática devem ser conservadoras para que não excluam e recriem preventivamente suas instâncias. Quando uma verificação de integridade do autohealer é muito agressiva, o autohealer pode confundir instâncias ocupadas com instâncias com falha e reiniciá-las desnecessariamente, reduzindo a disponibilidade.

  • unhealthy-threshold . Deve ser maior que 1 . O ideal é definir esse valor como 3 ou mais. Isso protege contra falhas raras, como perda de pacotes de rede.
  • healthy-threshold . Um valor 2 é suficiente para a maioria dos aplicativos.
  • timeout . Defina esse valor de tempo para um valor generoso (cinco vezes ou mais que o tempo de resposta esperado). Isso protege contra atrasos inesperados, como instâncias ocupadas ou conexão de rede lenta.
  • check-interval . Este valor deve estar entre 1 segundo e duas vezes o tempo limite (nem muito longo nem muito curto). Quando um valor é muito longo, uma instância com falha não é detectada com rapidez suficiente. Quando um valor é muito curto, as instâncias e a rede podem ficar mensuravelmente ocupadas, devido ao grande número de sondagens de verificação de integridade enviadas a cada segundo.

O que vem a seguir