Defina um formato de distribuição alvo para VMs em um MIG regional


Se você usar um grupo gerenciado de instâncias (MIG) regional , poderá definir o formato de distribuição de destino desse MIG como uma das seguintes opções:

  • MESMO (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Numa distribuição EVEN , o número de VMs não difere em mais de 1 entre duas zonas quaisquer. Recomendado para cargas de trabalho de serviço altamente disponíveis.
  • EQUILIBRADO : o grupo prioriza a criação de VMs em zonas onde os recursos estão disponíveis, ao mesmo tempo que distribui as VMs da maneira mais uniforme possível pelas zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de veiculação altamente disponíveis.
  • QUALQUER : o grupo escolhe zonas para criar instâncias de VM para atender ao número solicitado de VMs dentro das restrições de recursos atuais e para maximizar a utilização de reservas zonais não utilizadas. Recomendado para cargas de trabalho em lote que não exigem alta disponibilidade.
  • QUALQUER ZONA ÚNICA : o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política compacta de posicionamento de instâncias para cargas de trabalho que exigem comunicação extensiva entre VMs.

Para usar VMs reservadas em um grupo regional de instâncias gerenciadas, crie reservas idênticas com o mesmo nome em cada zona aplicável. Em seguida, direcione essas reservas por nome no modelo de instância do grupo.

Para ajudá-lo a escolher uma forma, consulte a tabela de comparação , casos de uso e como funcionam as formas de distribuição .

Defina um formato de distribuição alvo ao criar seu MIG regional ou atualize o formato alvo de um MIG regional existente.

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.

Limitações

  • Você só pode selecionar zonas para seu MIG ao criar o MIG.
  • Se você especificar recursos no modelo de instância do seu MIG ou na configuração com estado que não estão disponíveis em todas as zonas selecionadas, as seguintes limitações serão aplicadas:

    • Você deve definir o formato de distribuição de destino como BALANCED , ANY ou ANY_SINGLE_ZONE .
    • Você deve garantir que todos os recursos exigidos pelo MIG (por exemplo, discos, tipos de máquinas ou GPUs existentes) estejam disponíveis em pelo menos uma das zonas selecionadas.
    • Se quiser atualizar a configuração do MIG (por exemplo, modelo de instância) para uma configuração que não pode ser instanciada em todas as zonas selecionadas, você deverá remover as instâncias gerenciadas de todas as zonas não suportadas antes de definir a nova configuração.
  • Para definir o formato de distribuição de destino como BALANCED ou ANY_SINGLE_ZONE , você deve desativar a redistribuição proativa de instâncias .

  • Se quiser dimensionar automaticamente um MIG regional, você deverá definir o formato de distribuição de destino do grupo como BALANCED ou EVEN .
  • Se você definir o formato de distribuição de destino como BALANCED , ANY ou ANY_SINGLE_ZONE , as seguintes limitações serão aplicadas:

    • As atualizações Canary com duas versões não são suportadas.
    • Em caso de disponibilidade limitada dos recursos solicitados em toda a região, o grupo poderá agendar a criação de instâncias de VM numa zona onde os recursos já estão indisponíveis. Você pode tentar diminuir e aumentar o tamanho do grupo para obter os recursos solicitados em outras zonas.
    • As atualizações contínuas que usam o método de substituição SUBSTITUTE tentarão criar as novas instâncias atualizadas na mesma zona que as máquinas desatualizadas, mesmo que a zona não tenha recursos para acomodar os requisitos da nova versão. Para mediar esse comportamento, você pode excluir as VMs desatualizadas da zona restrita e, em seguida, aumentar o tamanho do grupo de acordo com o número de VMs excluídas. O grupo cria instâncias do modelo mais recente em zonas onde há capacidade disponível.
    • Se quiser atualizar o modelo de instância do grupo para um modelo que especifique recursos que não estão disponíveis em todas as zonas selecionadas, você deverá remover as instâncias gerenciadas de zonas sem suporte antes de definir o novo modelo.
  • Se você definir o formato de distribuição de destino como ANY_SINGLE_ZONE e o grupo tiver VMs existentes em uma única zona, você poderá criar VMs adicionais somente nessa zona. Se quiser usar uma zona diferente, primeiro você deverá dimensionar o grupo para zero VMs.

  • Se precisar provisionar um grupo de VMs de locatário individual , você deverá definir o formato de distribuição de destino do MIG como EVEN . Crie seus grupos de nós nas mesmas zonas das zonas do MIG e defina as afinidades do nó do MIG no modelo de instância do MIG.

Criando um grupo com um formato de distribuição alvo

Para criar seu grupo, selecionar as zonas e definir o formato de distribuição de destino, use o console do Google Cloud , a CLI gcloud , o Terraform ou o REST .

Console

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

    Vá para a página Grupos de instâncias

  2. Clique em Criar grupo de instâncias para criar um novo grupo de instâncias.
  3. Selecione uma das opções de Novo grupo gerenciado de instâncias : sem estado (padrão) ou com estado .
  4. Atribua um nome e, opcionalmente, uma descrição ao seu grupo de instâncias.
  5. Escolha um modelo de instância para o grupo de instâncias ou crie um novo.
  6. Especifique o número de VMs para este grupo. Para cargas de trabalho altamente disponíveis, lembre-se de provisionar VMs suficientes para dar suporte ao seu aplicativo caso ocorra uma falha na zona.
  7. Em Localização , selecione Várias zonas .
  8. Escolha uma região e selecione as zonas que deseja usar.

    • Se desejar que seu MIG possa usar todas as zonas da região, selecione todas as zonas disponíveis.
    • Observe que não é possível atualizar um MIG regional para usar zonas diferentes após sua criação.
  9. Escolha um formato de distribuição alvo.

    1. Se você quiser selecionar Any ou Any single zone , na seção Autoscaling , clique em Autoscaling mode e escolha Delete autoscaling configuration.
    2. Se você quiser selecionar Qualquer zona única ou Balanceada , na seção Redistribuição de instâncias , não selecione Permitir redistribuição de instâncias .
  10. Continue com o restante do processo de criação do MIG.

gcloud

Use o gcloud compute instance-groups managed create e inclua a sinalização --target-distribution-shape .

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape SHAPE

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias.
  • TEMPLATE : o nome do modelo de instância a ser usado para o grupo.
  • SIZE : o tamanho alvo do grupo de instâncias.
  • REGION : a região onde você deseja seu grupo.
  • ZONES (opcional): uma lista de zonas na região onde você deseja implantar instâncias de VM. Por padrão, o Compute Engine seleciona três zonas para você.

    • Se desejar que seu MIG possa usar todas as zonas da região, especifique todas as zonas disponíveis. Você pode obter uma lista de zonas na região com o seguinte comando:

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • Observe que não é possível atualizar um MIG regional para usar zonas diferentes após sua criação.

  • SHAPE : a forma de distribuição alvo. Este pode ser um dos seguintes valores:

    • even (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Numa distribuição EVEN , o número de VMs não difere em mais de 1 entre duas zonas quaisquer. Recomendado para cargas de trabalho de serviço altamente disponíveis.
    • balanced : o grupo prioriza a criação de VMs em zonas onde os recursos estão disponíveis, ao mesmo tempo que distribui as VMs da maneira mais uniforme possível pelas zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de veiculação altamente disponíveis.
    • any : o grupo escolhe zonas para criar instâncias de VM para atender ao número solicitado de VMs dentro das restrições de recursos atuais e para maximizar a utilização de reservas zonais não utilizadas. Recomendado para cargas de trabalho em lote que não exigem alta disponibilidade.
    • any-single-zone : o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política compacta de posicionamento de instâncias para cargas de trabalho que exigem comunicação extensiva entre VMs.

Por exemplo, para criar um MIG regional com um formato de distribuição de destino balanceado, defina o sinalizador --target-distribution-shape como balanced .

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c \
    --target-distribution-shape balanced \
    --instance-redistribution-type none

Terraforma

Se você ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de inicialização, a rede e outras propriedades de VM desejadas para cada VM em seu MIG, crie um modelo de instância .

Para criar um MIG regional, use o recurso google_compute_region_instance_group_manager .

O exemplo a seguir cria um MIG regional com formato de distribuição de destino BALANCED .

resource "google_compute_region_instance_group_manager" "default" {
  name                             = "example-rmig"
  region                           = "us-east1"
  distribution_policy_zones        = ["us-east1-b", "us-east1-c"]
  distribution_policy_target_shape = "BALANCED"
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  target_size        = 30
  base_instance_name = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

DESCANSAR

Chame o método regionInstanceGroupManagers.insert . No corpo da solicitação, inclua a propriedade distributionPolicy e defina seu campo targetShape .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
    "name": INSTANCE_GROUP_NAME,
    "instanceTemplate": "global/instanceTemplates/TEMPLATE",
    "targetSize": SIZE,
    "distributionPolicy": {
        "zones": [
            {"zone": "zones/ZONE1"},
            {"zone": "zones/ZONE2"},
            {"zone": "zones/ZONE3"},
        ],
        "targetShape": "SHAPE"
    }
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para esta solicitação.
  • REGION : a região do grupo de instâncias.
  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias.
  • TEMPLATE : o nome do modelo de instância a ser usado para o grupo de instâncias.
  • SIZE : o tamanho alvo do grupo de instâncias.
  • ZONE : o nome de uma zona na região onde você deseja implantar instâncias de VM.
    • Se desejar que seu MIG possa usar todas as zonas da região, especifique todas as zonas disponíveis. Você pode obter uma lista de zonas na região chamando o regions.get .
    • Observe que não é possível atualizar um MIG regional para usar zonas diferentes após sua criação.
  • SHAPE : a forma de distribuição alvo. Este pode ser um dos seguintes valores:
    • EVEN (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Numa distribuição EVEN , o número de VMs não difere em mais de 1 entre duas zonas quaisquer. Recomendado para cargas de trabalho de serviço altamente disponíveis.
    • BALANCED : o grupo prioriza a criação de VMs em zonas onde os recursos estão disponíveis, ao mesmo tempo que distribui as VMs da maneira mais uniforme possível pelas zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de veiculação altamente disponíveis.
    • ANY : o grupo escolhe zonas para criar instâncias de VM para atender ao número solicitado de VMs dentro das restrições de recursos atuais e para maximizar a utilização de reservas zonais não utilizadas. Recomendado para cargas de trabalho em lote que não exigem alta disponibilidade.
    • ANY_SINGLE_ZONE : o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política compacta de posicionamento de instâncias para cargas de trabalho que exigem comunicação extensiva entre VMs.

Alterando o formato de distribuição alvo de um grupo existente

É possível alterar o formato de distribuição de destino em um MIG regional existente, mas com as seguintes limitações:

  • Se desejar alterar o formato de distribuição de destino para BALANCED ou ANY_SINGLE_ZONE , você deverá primeiro desabilitar a redistribuição proativa .
  • Se desejar alterar o formato de distribuição de destino para EVEN e se a distribuição atual de instâncias for desigual, você deverá primeiro desabilitar a redistribuição proativa.
  • Se você alterar a forma para EVEN e quiser reativar a redistribuição proativa, primeiro deverá reequilibrar manualmente o grupo .
  • Se você quiser alterar o formato de distribuição de destino para EVEN , mas seu modelo de instância especificar recursos que não são suportados em todas as zonas selecionadas, você deverá primeiro atualizar o modelo de instância do grupo para um que seja suportado em todas as zonas selecionadas.

Console

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

    Vá para a página Grupos de instâncias

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias onde você deseja alterar o formato de distribuição de destino.
  3. Clique em Editar para modificar este grupo de instâncias gerenciadas.
  4. Em Forma de distribuição de destino , especifique a forma desejada.
  5. Clique em Salvar para aplicar o novo modelo.

gcloud

Use o comando gcloud compute instance-groups managed update e inclua a sinalização --target-distribution-shape .

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --target-distribution-shape SHAPE

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias.
  • SHAPE : a forma de distribuição alvo. Este pode ser um dos seguintes valores:
    • even (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Numa distribuição EVEN , o número de VMs não difere em mais de 1 entre duas zonas quaisquer. Recomendado para cargas de trabalho de serviço altamente disponíveis.
    • balanced : o grupo prioriza a criação de VMs em zonas onde os recursos estão disponíveis, ao mesmo tempo que distribui as VMs da maneira mais uniforme possível pelas zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de veiculação altamente disponíveis.
    • any : o grupo escolhe zonas para criar instâncias de VM para atender ao número solicitado de VMs dentro das restrições de recursos atuais e para maximizar a utilização de reservas zonais não utilizadas. Recomendado para cargas de trabalho em lote que não exigem alta disponibilidade.
    • any-single-zone : o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política compacta de posicionamento de instâncias para cargas de trabalho que exigem comunicação extensiva entre VMs.

DESCANSAR

Chame o método regionInstanceGroupManagers.patch . No corpo da solicitação, inclua a propriedade distributionPolicy e defina seu campo targetShape .

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
    "distributionPolicy": {
        "targetShape": "SHAPE"
    }
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para esta solicitação.
  • REGION : a região do grupo de instâncias.
  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias.
  • SHAPE : a forma de distribuição alvo. Este pode ser um dos seguintes valores:
    • EVEN (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Numa distribuição EVEN , o número de VMs não difere em mais de 1 entre duas zonas quaisquer. Recomendado para cargas de trabalho de serviço altamente disponíveis.
    • BALANCED : o grupo prioriza a criação de VMs em zonas onde os recursos estão disponíveis, ao mesmo tempo que distribui as VMs da maneira mais uniforme possível pelas zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de veiculação altamente disponíveis.
    • ANY : o grupo escolhe zonas para criar instâncias de VM para atender ao número solicitado de VMs dentro das restrições de recursos atuais e para maximizar a utilização de reservas zonais não utilizadas. Recomendado para cargas de trabalho em lote que não exigem alta disponibilidade.
    • ANY_SINGLE_ZONE : o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política compacta de posicionamento de instâncias para cargas de trabalho que exigem comunicação extensiva entre VMs.

Visualizando a política de distribuição de instâncias configurada

Console

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

    Vá para a página Grupos de instâncias

    Se você tiver grupos de instâncias existentes, a página listará esses grupos.
  2. Clique no nome do grupo de instâncias que você deseja examinar. Uma página é aberta com as propriedades do grupo de instâncias e uma lista de instâncias incluídas no grupo.
  3. Clique em Detalhes .
  4. Na seção Localização , procure Forma de distribuição de destino .

gcloud

Execute o comando gcloud compute instance-groups managed describe .

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --region REGION

O comando retorna os detalhes do grupo, incluindo o campo distributionPolicy.targetShape :

...
distributionPolicy:
  targetShape: BALANCED
  zones:
  - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f
  ...
name: my-group
region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1
...

DESCANSAR

Construa uma solicitação GET para o método regionInstanceGroupManagers.get .

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para esta solicitação
  • REGION : a região do grupo de instâncias
  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias

O formato de distribuição de destino é retornado no campo distributionPolicy.targetShape . Por exemplo:

{
  "name": "my-instance-group",
  "distributionPolicy": {
    "targetShape": "BALANCED",
  },
  "targetSize": 50,
  ...
}

O que vem a seguir