Sobre a flexibilidade de instância em MIGs

Com a flexibilidade de instâncias em grupos gerenciados de instâncias (MIGs), é possível especificar vários tipos de máquinas para as instâncias de máquina virtual (VM) no grupo, em vez de ficar limitado a um único tipo de máquina. Se um tipo de máquina não estiver disponível, o MIG poderá selecionar automaticamente outro tipo compatível da sua lista com base na disponibilidade atual de recursos. Essa flexibilidade ajuda a melhorar a capacidade de obtenção de recursos, principalmente para aplicativos que podem operar em diferentes tipos de máquinas e que exigem capacidade em grande escala ou hardware com alta demanda.

Este documento descreve como a flexibilidade de instâncias funciona em um MIG e as limitações dela. Para saber como configurar um MIG para usar a flexibilidade de instância, consulte Adicionar flexibilidade de instância.

Flexibilidade da instância

Um MIG cria todas as VMs com base no modelo de instância selecionado. O modelo de instância especifica o tipo de máquina a ser usado para cada VM. Com a flexibilidade de instância, é possível listar todos os tipos de máquina compatíveis com seu aplicativo.

A imagem a seguir compara um MIG que usa um único tipo de máquina com um MIG que usa a flexibilidade de instâncias. Como mostrado na imagem, um MIG com um único tipo de máquina cria VMs idênticas com base em um modelo de instância, enquanto um MIG com flexibilidade de instância pode criar VMs com diferentes tipos e tamanhos de máquina.

Comparação de um MIG que usa um único tipo de máquina com um MIG que usa a flexibilidade de instância

Como funciona a flexibilidade de instâncias

Por padrão, um MIG cria todas as VMs usando um único tipo de máquina do modelo de instância. É possível definir vários tipos de máquina em um MIG configurando uma seleção de instância (instanceSelections) na política de flexibilidade de instância (instanceFlexibilityPolicy).

Também é possível especificar tipos de máquinas que são executados em diferentes plataformas de CPU e aquelas com arquiteturas diferentes (arquitetura x86 e Arm). Para usar tipos de máquina com requisitos diferentes para plataforma mínima de CPU ou discos, use a política de flexibilidade de instância para substituir as propriedades correspondentes do modelo de instância. Para mais informações, consulte Como as substituições de minCpuPlatform e disks funcionam.

Exemplo de substituições de tipo de máquina

Se a carga de trabalho puder operar em vários tipos de máquinas diferentes, configure uma lista de todos os tipos compatíveis com seu aplicativo em um único instanceSelection da seguinte maneira:

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "instance-selection-1": {
        "machineTypes": ["c2-standard-8","c2d-standard-8","c3-standard-8", "c3d-standard-8"]
      }
    }
  }
  

Os tipos de máquina em uma seleção de instância têm a mesma preferência. Se você quiser que um MIG escolha tipos de máquina em uma ordem específica, configure várias seleções de instâncias, cada uma com uma lista de tipos de máquina e uma classificação para definir a preferência. Um valor menor de classificação significa maior preferência. O MIG tenta criar as VMs usando tipos de máquina com uma preferência maior. Se esses tipos de máquina preferidos não estiverem disponíveis, o MIG usará um tipo de máquina com uma preferência menor.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "rank": 1,
        "machineTypes": ["c3-standard-8","c2-standard-8"]
      },
      "least-preferred": {
        "rank": 2,
        "machineTypes": ["n2-standard-16","n1-standard-16"]
      }
    }
  }
  

Seu aplicativo precisa estar pronto para ser executado em qualquer um dos tipos de máquina listados, já que a disponibilidade de hardware muda com o tempo e não é garantida, a menos que você use reservas.

As seleções de instâncias também podem substituir as propriedades da instância, como minCpuPlatform e disks. Para mais informações, consulte a seção a seguir sobre Como as substituições de seleção de instâncias funcionam.

Como as substituições de minCpuPlatform e disks funcionam

Em uma seleção de instâncias, é possível especificar outras propriedades, como plataforma mínima de CPU (minCpuPlatform) e discos (disks), para substituir as definidas no modelo de instância. Quando um MIG seleciona um tipo de máquina de uma seleção de instância, ele cria uma VM usando as propriedades de instância especificadas nessa seleção. Se você não especificar nenhuma dessas propriedades para uma seleção de instâncias, o MIG usará as propriedades correspondentes do modelo para essa seleção.

Substituir essas propriedades no nível de seleção da instância oferece mais controle e flexibilidade, principalmente ao usar hardware diferente em um MIG.

  • Substitua a plataforma mínima de CPU ao misturar tipos de máquinas que são executados em plataformas de CPU diferentes. É possível especificar uma plataforma mínima de CPU para instâncias criadas com base nos tipos de máquina em uma seleção. Essa substituição permite misturar diferentes tipos de máquina, mas aplicar seletivamente plataformas mínimas de CPU. Como alternativa, é possível configurar a seleção de instâncias para escolher automaticamente uma plataforma de CPU definindo o campo minCpuPlatform como AUTOMATIC. Essa seleção automática substitui a configuração de plataforma mínima de CPU do modelo de instância e permite que o MIG use qualquer plataforma de CPU compatível para os tipos de máquina selecionados.

    Por exemplo, é possível misturar tipos de máquinas das séries N1 e N2 em uma seleção, garantindo que as máquinas N1 sejam executadas no Intel Skylake para alcançar ganhos de desempenho.

  • Substitua os discos ao misturar tipos de máquinas com arquiteturas diferentes. É possível especificar uma configuração de disco personalizada para substituir o disco de inicialização ou outros discos especificados nas propriedades da instância ou para anexar um armazenamento específico. Essa substituição permite misturar tipos de máquina com arquiteturas diferentes ou que não compartilham tecnologias de disco, além de especificar as imagens ou discos de inicialização adequados necessários para cada tipo de máquina.

    Por exemplo, é possível misturar tipos de máquina C4 (arquitetura x86) e C4A (arquitetura Arm). Como as máquinas x86 e Arm exigem imagens de inicialização diferentes, é possível usar seleções de instâncias separadas para substituir o disco de inicialização de cada arquitetura.

    Quando você especifica os discos para uma seleção de instâncias, o MIG mescla os discos no modelo de instância e na seleção de instâncias pelas chaves deviceName. O diagrama a seguir mostra um exemplo.

    Mesclagem de discos do modelo de instância e da seleção de instâncias

Para saber mais sobre as limitações ao usar substituições de seleção de instâncias, consulte a seção Limitações deste documento.

Exemplo de substituições de disco e plataforma mínima de CPU

Considere um modelo de instância com a seguinte configuração:

  {
    ...
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot",
          "boot": true,
          "diskEncryptionKey": {},
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
            "diskSizeGb": "10",
            "diskType": "pd-balanced"
          }
        }
      ],
      "machineType": "n2-standard-2",
      ...
    }
  

O exemplo a seguir de uma política de flexibilidade de instância substitui a configuração do modelo especificando uma plataforma de CPU mínima e uma configuração de disco.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "first-preference": {
        "rank": 1,
        "machineTypes": ["n4-standard-4 "],
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "diskEncryptionKey": {},
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "hyperdisk-balanced"
            }
          }
        ]
      },
      "second-preference": {
        "rank": 2,
        "machineTypes": ["n2-standard-4"],
        "minCpuPlatform": "Intel Ice Lake",
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "pd-ssd"
            }
          }
        ]
      },
      "third-preference": {
        "rank": 3,
        "machineTypes": ["n1-standard-4"],
        "minCpuPlatform": "Intel Skylake",
      }
    }
  }
  

Como um MIG seleciona tipos de máquinas

Ao configurar vários tipos de máquina, o MIG seleciona um tipo de máquina com base na disponibilidade atual de recursos e prioriza reservas não utilizadas. Se você configurou classificações, o MIG considera primeiro sua ordem de preferência. Em uma seleção de instâncias classificadas, o MIG verifica a disponibilidade de recursos e as reservas.

As zonas na região do MIG também podem afetar a seleção do tipo de máquina, já que a disponibilidade de recursos varia entre as zonas. Para mais informações, consulte a seção a seguir sobre como um MIG seleciona zonas.

Como um MIG seleciona zonas

É possível configurar a flexibilidade de instâncias em um MIG regional que tenha um formato de distribuição de destino BALANCED, ANY ou ANY_SINGLE_ZONE. A flexibilidade de instâncias não é compatível com o formato de distribuição de destino EVEN.

Com a flexibilidade de instâncias, quando um MIG regional cria uma VM, ele seleciona uma zona dependendo do formato de distribuição de destino selecionado da seguinte maneira:

  • BALANCED: o MIG seleciona uma zona com recursos disponíveis que podem equilibrar a distribuição de VMs entre as zonas da maneira mais uniforme possível. Em uma zona selecionada, o MIG prioriza os tipos de máquina com base em classificações, se configuradas, e em reservas disponíveis.

  • ANY: o MIG seleciona uma zona com recursos e reservas disponíveis. Se os níveis forem configurados, o MIG vai priorizar a zona em que um tipo de máquina baseado em níveis estiver disponível.

  • ANY_SINGLE_ZONE: o MIG seleciona uma zona com o maior número de tipos de máquina com base nos rankings, se configurados, e em que o MIG pode criar mais VMs com base em reservas não utilizadas.

Para mais informações sobre como funciona um formato de distribuição de destino, consulte Formato de distribuição de destino do MIG regional.

Flexibilidade e reservas de instâncias

É possível usar a flexibilidade de instâncias com reservas. Com base na propriedade de afinidade de reserva definida no modelo de instância, um MIG usa as reservas da seguinte maneira:

  • ANY_RESERVATION (recomendado para flexibilidade de instâncias): ao usar qualquer reserva, o MIG seleciona primeiro o tipo de máquina com reserva não utilizada. Se você quiser mudar a ordem em que o MIG seleciona os tipos de máquina, configure várias seleções de instâncias e especifique sua preferência usando classificações. Primeiro, o MIG segue as classificações e considera as reservas disponíveis para os tipos de máquina em uma classificação.

  • SPECIFIC: ao usar uma reserva específica, o MIG seleciona o tipo de máquina que corresponde às propriedades da reserva. Se as seleções de instância não incluírem o tipo de máquina que corresponde às propriedades da reserva específica, a criação da instância vai falhar.

Para mais informações sobre reservas, consulte Sobre as reservas.

Flexibilidade de instância e VMs spot

Se o MIG com flexibilidade de instâncias usar VMs do Spot, ele vai selecionar automaticamente um tipo de máquina com a menor taxa de remoção observada para garantir a menor interrupção possível na sua carga de trabalho. Se quiser substituir esse comportamento, siga estas etapas:

  • Ver disponibilidade de recursos. Antes de criar um MIG com VMs Spot, é possível conferir a disponibilidade de recursos na região ou zona em que você quer criar o MIG. Essa ação ajuda a reduzir as chances de encontrar erros de disponibilidade de recursos.

    Para instruções, consulte Ver a disponibilidade de VMs spot.

  • Configure várias seleções de instâncias. É possível especificar o tipo de máquina e as zonas em que criar VMs spot usando classificações. Primeiro, o MIG segue sua ordem de preferência e depois considera a confiabilidade das VMs Spot em uma seleção de instâncias.

    Para instruções, consulte Criar um MIG com vários tipos de máquina e preferências.

Para mais informações sobre como usar VMs spot em um MIG, consulte VMs spot em um grupo gerenciado de instâncias.

Flexibilidade da instância e reparos de VM

Por padrão, se uma VM em um MIG falhar, o MIG vai recriar a VM usando a mesma configuração, incluindo o tipo de máquina. Se você configurar a flexibilidade de instância e ativar as atualizações durante o reparo, poderá aumentar as chances de conseguir recursos se ocorrer uma falta de estoque. Quando um MIG tenta recriar uma VM, se o tipo de máquina original da VM estiver indisponível, você vai receber um erro de falta de estoque. Com as atualizações durante o reparo ativadas, o MIG usa as seleções de instâncias especificadas e a disponibilidade atual para escolher outro tipo de máquina para a criação da VM. Ativar atualizações durante o reparo também ajuda a garantir que a VM recriada use a configuração de flexibilidade de instância mais recente.

Para mais informações sobre reparos, consulte Como reparar VMs para alta disponibilidade.

Flexibilidade e escalonamento automático de instâncias

Quando você configura o escalonamento automático em um MIG com vários tipos de máquina, acontece o seguinte:

  • Quando um escalonador automático aumenta um MIG, ele cria VMs selecionando tipos de máquina da mesma maneira que em um MIG sem escalonamento automático. Para mais informações, consulte Como um MIG seleciona tipos de máquinas neste documento.

  • Quando um escalonador automático reduz um MIG, ele seleciona as VMs a serem excluídas da seguinte forma:

    1. O MIG prioriza a exclusão de VMs que melhor preservam o formato de distribuição de destino.
    2. Se você configurou classificações, entre as VMs priorizadas, o MIG prioriza a exclusão de VMs que usam tipos de máquina de classificação mais baixa.
    3. Por fim, o MIG verifica a recomendação do escalonador automático para selecionar as VMs a serem excluídas.

O escalonamento automático funciona de maneira eficaz quando o MIG tem tipos de máquinas com desempenho semelhante, por exemplo, máquinas com a mesma contagem de vCPUs. Caso contrário, quando o MIG fizer escalonamento horizontal ou vertical, o escalonador automático poderá tentar adicionar ou remover o tipo de máquina de melhor desempenho com mais frequência. Esse comportamento pode ocorrer independente da classificação configurada para esse tipo de máquina.

Para mais informações sobre o escalonamento automático, consulte Escalonamento automático de grupos de instâncias.

Casos de uso

As seções a seguir descrevem alguns casos de uso da flexibilidade de instâncias em MIGs.

Melhorar a capacidade de obtenção

É possível configurar a flexibilidade da instância do MIG para melhorar a capacidade de obtenção de recursos:

  • Tipos de máquina: a configuração básica é configurar vários tipos de máquina em um único ranking. Esse único ranking dá a eles a mesma preferência, permitindo que o MIG selecione qualquer um deles com base na disponibilidade de recursos. No entanto, se você tiver preferências, poderá atribuir classificações diferentes para especificar uma ordem de preferência para os tipos de máquina.

  • Local: para aumentar ainda mais a chance de conseguir os recursos, escolha todas as zonas ao criar o MIG e use o formato de distribuição de destino ANY. A forma ANY permite que o MIG pesquise capacidade em todas as zonas.

  • VMs spot e preempção: ao usar VMs spot, para maximizar as chances de conseguir as VMs e minimizar as preempções, o Google recomenda incluir o maior número possível de tipos de máquina compatíveis na mesma classificação. Essa configuração permite que o MIG escolha tipos de máquina com as menores taxas de remoção para minimizar a interrupção da sua carga de trabalho. Se você configurar tipos de máquina com classificações diferentes, o MIG vai priorizar os tipos de máquina com base na classificação em vez das taxas de substituição, o que pode resultar na seleção de um tipo de máquina com uma taxa de substituição mais alta.

Otimize os custos

Um MIG pode provisionar automaticamente as instâncias mais econômicas para sua infraestrutura quando você configura as definições de flexibilidade de instância do MIG da seguinte maneira:

  • Tipos de máquina: selecione os tipos de máquina que oferecem a relação custo-benefício preferida para sua carga de trabalho. Não é necessário especificar todos os tamanhos disponíveis de cada tipo de máquina. Especifique apenas os tamanhos mais econômicos para suas necessidades.

  • Classificação: atribua classificações às seleções de instâncias de acordo com suas preferências de custo, sendo o tipo de máquina de menor custo o mais preferido. Isso ajuda a garantir que você obtenha o tipo de máquina de menor custo com base na disponibilidade.

  • Local: ao criar o MIG, selecione todas as zonas e o formato de distribuição de destino ANY. Isso aumenta as chances de conseguir os tipos de máquinas de menor custo nas zonas em que eles estão disponíveis.

Com base nas configurações de flexibilidade da instância, o MIG provisiona automaticamente a melhor combinação possível de tipos de máquina disponíveis para atender aos seus critérios de custo e à capacidade total solicitada. Isso garante o menor custo possível em um determinado momento.

Maximize a performance

É possível configurar a flexibilidade da instância do MIG para maximizar a performance. Para isso, selecione famílias e tamanhos de máquinas que atendam melhor à sua carga de trabalho. Em seguida, classifique os tipos de máquina com base no desempenho, do mais alto ao mais baixo, usando o tamanho mais preferido em cada família. Com base no ranking e nos tipos de máquina, o MIG seleciona as máquinas de melhor desempenho entre todos os recursos disponíveis.

Como as gerações de máquinas mais recentes geralmente oferecem maior desempenho por núcleo, não é necessário limitar a seleção de máquinas para usar o mesmo tamanho (contagem de vCPUs) em diferentes famílias para alcançar desempenho equivalente. Por exemplo, ao selecionar entre famílias de máquinas, é possível misturar diferentes contagens de CPU, como n1-standard-32 e n2-standard-16.

Além disso, especificar um minCpuPlatform para a seleção de instâncias pode garantir que o MIG selecione uma plataforma de CPU de alto desempenho.

Transição perfeita para os tipos de máquina mais recentes

É possível configurar a flexibilidade de instância do MIG para priorizar a adoção dos tipos de máquina de última geração, usando os tipos de máquina de geração mais antiga como um substituto para capacidade. Para isso, crie uma seleção de instância com os tipos de máquina de última geração e atribua uma classificação mais baixa (preferência maior). Se esses tipos de máquina exigirem configurações de disco diferentes, use as substituições de disco nessa seleção de instância para definir as propriedades específicas do disco. Crie uma segunda seleção de instâncias com os tipos de máquinas de geração mais antiga para servir como substituição. Atribua uma classificação mais alta (preferência menor) a essa seleção de instância.

Ao criar o MIG, selecione todas as zonas na região e o formato de distribuição de destino QUALQUER. Essa configuração garante que o MIG primeiro pesquise as máquinas de última geração em todas as zonas da região. O MIG só vai provisionar as máquinas de geração mais antiga se não encontrar capacidade suficiente da geração mais recente. Assim, a capacidade total solicitada é sempre atendida, maximizando a participação do hardware mais novo.

Limitações

A flexibilidade de instâncias tem as seguintes limitações:

  • Os MIGs zonais não são compatíveis com a flexibilidade de instâncias. Use um MIG regional com uma única zona.

  • As VMs de início flexível não são compatíveis com a flexibilidade de instância.

  • A flexibilidade de instância não é compatível com os seguintes recursos de MIG:

  • Ao substituir minCpuPlatform e disks, as seguintes limitações também se aplicam:

    • É necessário ativar as atualizações durante os reparos.

    • Ao configurar o minCpuPlatform ou disks para uma seleção de instância existente, também é necessário incluir o campo machineTypes. Sem o campo machineTypes, a operação falha com um erro.

    • Não é possível aplicar uma política com estado ou uma configuração por instância a discos substituídos por uma seleção de instância.

    • É possível substituir SSDs locais apenas para os tipos de máquina que permitem escolher um número de discos SSD locais. Não é possível substituir o SSD local para variantes -lssd de tipos de máquina, que anexam automaticamente discos SSD locais.

    • É necessário especificar um tipo de máquina exclusivo em todas as seleções de instâncias. Por exemplo, não é possível especificar n1-standard-2 em uma seleção com uma CPU Skylake e também em outra seleção com uma CPU Broadwell.

  • Para garantir um balanceamento de carga ou escalonamento automático eficaz em um MIG com flexibilidade de instância, use tipos de máquinas com desempenho semelhante, por exemplo, a mesma contagem de vCPUs. No entanto, "desempenho semelhante" não se limita ao uso do mesmo tamanho em diferentes famílias. Como as gerações de máquinas mais recentes geralmente têm maior desempenho por vCPU, é possível misturar diferentes contagens de vCPU (por exemplo, misturar n1-standard-32 com n2-standard-28).

    • No Cloud Load Balancing, tipos de máquinas com desempenho semelhante podem evitar o uso excessivo de hardware menor e o uso insuficiente de máquinas mais rápidas.

    • No escalonamento automático, tipos de máquinas com desempenho semelhante podem impedir a adição ou exclusão do tipo de máquina com melhor performance.

A seguir