Resolução de problemas de grupos de instâncias geridas

Existem vários problemas que podem impedir que um grupo de instâncias gerido (MIG) crie ou recrie com êxito uma instância da VM.

Se forem gerados registos para um MIG eliminado

O problema pode estar relacionado com as seguintes situações.

O redimensionador automático associado ainda existe

Se eliminou um GIG através da API Compute Engine e não enviou um pedido separado para eliminar o escalador automático anexado, o Explorador de registos pode apresentar registos com a seguinte mensagem.

The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/DELETED_INSTANCE_GROUP_NAME' was not found.

Resolução:

Para resolver este problema, elimine o escalador automático anexado através dos métodos da API Compute Engine:

Se o MIG não conseguir criar nem recriar instâncias

O problema pode estar relacionado com as seguintes situações.

O disco de arranque já existe

Por predefinição, é criado um novo disco persistente de arranque quando cria uma instância. O nome do disco de arranque corresponde ao nome da VM. Se atribuir o nome my-instance a uma VM, o disco também recebe o nome my-instance. Se já existir um disco persistente com esse nome, o pedido falha. Para resolver este problema, pode tirar uma captura de ecrã opcionalmente e, em seguida, eliminar o disco persistente existente.

O modelo de instância não é válido

Se atualizou recentemente o modelo de instância, pode existir uma propriedade inválida que faça com que o MIG falhe a criação de VMs. Examine as propriedades para verificar se existem estes erros comuns:

  • Especificou um recurso que não existe, como uma imagem de origem.
  • Escreveu incorretamente um nome de recurso.
  • Tentou anexar um disco persistente existente no modo de leitura/escrita, mas o seu grupo contém mais do que uma VM. Para grupos com mais de uma VM, quaisquer discos adicionais que queira partilhar entre todas as VMs no grupo só podem ser anexados no modo de leitura.

Limite excedido para o tipo de recurso

O seguinte erro ocorre quando tenta criar mais de 2000 VMs num MIG regional ou mais de 1000 VMs num MIG zonal. Atingiu o limite de tamanho do seu grupo de instâncias.

Mensagem de erro:

ERROR: (gcloud.compute.<INSTANCE_GROUP_TYPE>.<METHOD>) Could not
fetch resource:

 - Exceeded limit 'MAX_INSTANCES_IN_INSTANCE_GROUP' on resource 'PROJECT_ID'.
 Limit: NUMBER

Resolução:

Para resolver este problema, experimente uma das seguintes opções:

Se não conseguir eliminar o MIG ou as respetivas instâncias

O problema pode estar relacionado com a seguinte situação.

Recurso não encontrado na zona ou região

O seguinte erro ocorre quando tenta eliminar um MIG regional e especifica a flag --zone, não especifica nenhuma região ou especifica a região errada. Pode ocorrer um erro semelhante se tentar eliminar um MIG zonal e especificar a flag --region.

Mensagem de erro:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    

Resolução:

Para resolver este problema, experimente uma das seguintes opções:

O recurso é usado por um serviço de back-end

Não pode remover um grupo de instâncias quando é usado pelo serviço de back-end de um equilibrador de carga. Tem de remover a instância do serviço de back-end antes de poder eliminar o grupo de instâncias.

Mensagem de erro:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE

Resolução:

  1. Opcional: esvazie o grupo de instâncias do back-end.

  2. Remova o MIG do serviço de back-end regional ou global.

    • Para um MIG zonal, execute o seguinte comando:

      gcloud compute backend-services remove-backend BACKEND_SERVICE \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-zone=ZONE \
          [--region=REGION | --global]
      
    • Para um MIG regional, execute o seguinte comando:

      gcloud compute backend-services remove-backend BACKEND_SERVICE  \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-region=REGION \
          [--region=REGION | --global]
      
  3. Elimine o MIG:

    gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
    

Se o MIG tentar continuamente recriar instâncias

O problema pode estar relacionado com a seguinte situação.

As sondas de verificação de funcionamento não conseguem alcançar a instância

Se configurou uma política de autocorreção, mas não configurou, ou configurou incorretamente, a regra de firewall que permite que as sondas de verificação de estado alcancem a sua aplicação, as VMs aparecem como não estando em bom estado e o MIG tenta recriá-las continuamente. Para obter informações sobre como configurar uma regra de firewall de verificação de funcionamento, consulte o artigo Exemplo de configuração de verificação de funcionamento.