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.
Neste documento, descrevemos 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.
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 executadas em diferentes plataformas de CPU e aquelas
com arquiteturas diferentes (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, especialmente 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
minCpuPlatformcomoAUTOMATIC. 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 de máquinas 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áquinas 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.
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 plataforma de CPU mínima e disco
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 configurado, e em reservas disponíveis.ANY: o MIG seleciona uma zona com recursos e reservas disponíveis. Se os ranks estiverem configurados, o MIG vai priorizar a zona em que um tipo de máquina baseado em ranks 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 os ranks e depois considera as reservas disponíveis para os tipos de máquina em um rank.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 selecionará automaticamente um tipo de máquina com a menor taxa de preempção observada para garantir a menor interrupção possível para sua carga de trabalho. Se quiser substituir esse comportamento, configure várias seleções de instâncias e especifique sua preferência usando classificações. O MIG segue a ordem de preferência e considera a confiabilidade das VMs spot em uma seleção de instâncias.
Para mais informações sobre VMs spot, 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 recriá-la usando a mesma configuração, incluindo o tipo de máquina. Se você configurar a flexibilidade de instâncias 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 da 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, o seguinte acontece:
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:
- O MIG primeiro prioriza a exclusão de VMs que melhor preservam o formato de distribuição de destino.
- 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.
- 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.
Otimize os custos
Um MIG pode provisionar automaticamente as instâncias mais econômicas para sua infraestrutura quando você configura as opçõ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-desempenho 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, com o tipo de máquina de menor custo como 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áquina 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.
Melhorar a capacidade de obtenção
É possível configurar a flexibilidade da instância do MIG para melhorar a capacidade de obtenção. Para isso, selecione o maior número possível de tipos de máquina compatíveis com seu aplicativo na mesma classificação. Para aumentar ainda mais a chance de
obter os recursos, escolha todas as zonas ao criar o MIG e use
o formato de distribuição de destino ANY, que prioriza as zonas onde os
recursos estão disponíveis. Com base nos tipos de máquina selecionados e na forma ANY, o MIG encontra capacidade onde ela está mais disponível.
Para maximizar as chances de adquirir VMs spot e reduzir as chances de preempção, o Google recomenda incluir uma ampla variedade de tipos de máquinas na mesma classificação. Isso amplia a pesquisa do MIG por capacidade disponível, resultando nos melhores resultados possíveis com o modelo de provisionamento spot.
Maximize a performance
É possível configurar a flexibilidade da instância do MIG para maximizar a performance. Para isso, selecione famílias de máquinas e tamanhos 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.
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 de tipos de máquinas de última geração e usar tipos de máquinas de gerações anteriores como substitutos para capacidade. Para isso, crie uma seleção de instância que contenha os tipos de máquina de última geração e atribua uma classificação mais baixa (preferência mais alta). 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, garantindo que a capacidade total solicitada seja sempre atendida e maximizando a participação do hardware mais novo.
Limitações
A flexibilidade de instâncias tem as seguintes limitações:
A flexibilidade de instâncias não é compatível com MIGs zonais. Use um MIG regional com uma única zona.
A flexibilidade de instância não é compatível com os seguintes recursos de MIG:
- MIGs regionais com formato de distribuição de destino
definido como
EVEN - Atualização automática da configuração de VM e atualizações canário (dois modelos de instância)
- Suspender ou interromper VMs
- Solicitações de redimensionamento que criam VMs de GPU de uma só vez
- MIGs regionais com formato de distribuição de destino
definido como
Ao substituir
minCpuPlatformedisks, as seguintes limitações também se aplicam:É necessário ativar as atualizações durante os reparos.
Ao configurar o
minCpuPlatformou odiskspara uma seleção de instância existente, também é necessário incluir o campomachineTypes. Sem o campomachineTypes, 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
-lssdde 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-2em uma seleção com uma CPUSkylakee também em outra seleção com uma CPUBroadwell.
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 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
- Saiba mais sobre os diferentes tipos de máquinas.
- Adicione flexibilidade de instância a um MIG.
- Ver a flexibilidade da instância em um MIG.