A flexibilidade de instâncias em grupos gerenciados de instâncias (MIGs) permite especificar vários tipos de máquina para as instâncias de máquina virtual (VM) no grupo, em vez de se limitar 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 disponibilidade de recursos, principalmente para aplicativos que podem operar em diferentes tipos de máquina 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âncias, consulte Adicionar flexibilidade de instâncias.
Flexibilidade de instâncias
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âncias, é 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âncias 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âncias (instanceSelections) na política de flexibilidade de instâncias (instanceFlexibilityPolicy).
Também é possível especificar tipos de máquina que são executados em diferentes plataformas de CPU e com
arquiteturas diferentes (arquitetura x86 e Arm). Para usar tipos de máquina
com requisitos diferentes para plataforma de CPU mínima ou discos, use a política de flexibilidade
de instâncias para substituir as propriedades correspondentes do modelo
de instância. Para mais informações, consulte
Como funcionam as substituições de minCpuPlatform e disks.
Exemplo de substituições de tipo de máquina
Se a carga de trabalho puder operar em vários tipos de máquina diferentes, configure uma lista de todos os tipos de máquina compatíveis com o 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âncias 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 uma preferência maior. Quando você atribui classificações, o MIG verifica simultaneamente a disponibilidade em tempo real de todos os tipos de máquina e classificações configurados. Em seguida, o MIG provisiona instâncias usando os tipos de máquina disponíveis com a maior preferência (menor número de classificação).
"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 do hardware muda ao longo do tempo e um hardware específico não é garantido, a menos que você use reservas.
Para solicitações em grande escala, o MIG pode atender a uma parte das instâncias solicitadas com um tipo de máquina altamente preferencial e atender ao restante com tipos alternativos com base na disponibilidade em tempo real. Se o MIG não encontrar imediatamente capacidade para as instâncias restantes, elas poderão entrar em um estado pendente enquanto o MIG continua verificando a disponibilidade nas suas seleções.
As seleções de instância 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 funcionam as substituições de seleção de instâncias.
Como funcionam as substituições de minCpuPlatform e disks
Em uma seleção de instâncias, é possível especificar outras propriedades de instância, como
plataforma de CPU mínima (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âncias, 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ância, o MIG vai usar as propriedades
correspondentes do modelo para essa seleção.
Substituir essas propriedades no nível de seleção de instância oferece mais controle e flexibilidade, especialmente ao usar hardware diferente em um MIG.
Substitua a plataforma de CPU mínima ao misturar tipos de máquina que são executados em plataformas de CPU diferentes. É possível especificar uma plataforma de CPU mínima 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 de CPU mínimas. Como alternativa, é possível configurar a seleção de instâncias para selecionar automaticamente uma plataforma de CPU definindo o campo
minCpuPlatformcomoAUTOMATIC. Essa seleção automática substitui a configuração de plataforma de CPU mínima do modelo de instância e permite que o MIG use qualquer plataforma de CPU compatível com os tipos de máquina selecionados.Por exemplo, é possível misturar tipos de máquina 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áquina 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 e especificar as imagens de inicialização ou os discos 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 as substituições de seleção de instâncias, consulte a seção Limitações neste documento.
Exemplo de plataforma de CPU mínima e substituições de 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âncias 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áquina
Quando você configura vários tipos de máquina, o MIG seleciona um tipo de máquina com base na disponibilidade atual de recursos e prioriza as reservas não utilizadas. Se você configurar classificações, o MIG vai verificar a disponibilidade de recursos e as reservas em todos os tipos de máquina e zonas configurados simultaneamente. Entre os tipos de máquina com capacidade disponível, o MIG seleciona os tipos de máquina com a maior preferência (menor número de classificação). Nessa seleção, o MIG prioriza as reservas não utilizadas.
As zonas na região do MIG também podem afetar a seleção do tipo de máquina, porque a disponibilidade de recursos varia entre as zonas. Para mais informações, consulte a seção a seguir sobre como um MIG seleciona zonas.
Avaliação de capacidade e registro de erros
Antes de um MIG tentar criar VMs, ele verifica a capacidade nas seleções de instâncias configuradas. Se um tipo de máquina de preferência mais alta não estiver disponível durante essa verificação, o MIG selecionará um tipo de máquina de preferência mais baixa disponível, sem tentar criar VMs com o tipo indisponível.
O Compute Engine registra erros ZONE_RESOURCE_POOL_EXHAUSTED (falta de estoque)
somente quando uma tentativa de criação de VM falha. Por exemplo, quando um MIG tenta reparar
uma VM com falha usando o tipo de máquina original indisponível. Durante as verificações de capacidade, como o MIG ignora os tipos de máquina de maior preferência indisponíveis sem tentar criar a VM, você não verá erros de falta de estoque para eles no Cloud Logging.
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 nas classificações, se configuradas, e nas reservas disponíveis.ANY: o MIG seleciona uma zona com recursos e reservas disponíveis. Se as classificações estiverem configuradas, o MIG vai priorizar a zona em que um tipo de máquina com base nas classificações está disponível.ANY_SINGLE_ZONE: o MIG seleciona uma zona que tem mais tipos de máquina com base nas classificações, se configuradas, e em que o MIG pode criar mais VMs de 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.
Observabilidade e monitoramento
Um MIG com flexibilidade de instâncias seleciona dinamicamente tipos de máquina e zonas com base na disponibilidade em tempo real. É possível monitorar como as instâncias são distribuídas entre tipos de máquina e zonas em tempo real. O rastreamento desses dados ajuda a verificar a alta disponibilidade, ver como os tipos de máquina de fallback são alocados e diagnosticar a distribuição de capacidade. Para instruções sobre como visualizar esses dados para um MIG específico ou agregados em vários MIGs, consulte Monitorar a distribuição de instâncias em MIGs.
Flexibilidade de instâncias e reservas
É 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. Entre os tipos de máquina com capacidade disponível, o MIG seleciona os tipos de máquina com a maior preferência (menor número de classificação) e prioriza as reservas disponíveis dentro dessa 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 de reserva específicas, a criação da instância vai falhar.
Para mais informações sobre reservas, consulte Sobre reservas.
Flexibilidade de instâncias e VMs spot
Se o MIG com flexibilidade de instâncias usar VMs spot, ele vai selecionar automaticamente um tipo de máquina com a menor taxa de preempção observada para ajudar a garantir a menor interrupção da carga de trabalho. Se você quiser modificar esse comportamento, siga estas etapas:
Confira a 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 as VMs spot serão criadas usando classificações. Entre os tipos de máquina com capacidade disponível, o MIG seleciona os tipos de máquina com a maior preferência (menor número de classificação) e considera a confiabilidade das VMs spot nessa seleção.
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 de instâncias e reparos de VM
Por padrão, se uma VM em um MIG falhar, o MIG vai reparar a VM recriando-a com a mesma configuração, incluindo o tipo de máquina. Se você configurar a flexibilidade de instâncias e ativar as atualizações durante reparo, poderá melhorar as chances de conseguir recursos se houver falta de estoque.
Quando um MIG tenta reparar uma VM com falha, ele primeiro tenta recriar a VM
usando o tipo de máquina original. Se esse tipo de máquina não estiver disponível,
o Compute Engine vai registrar um erro ZONE_RESOURCE_POOL_EXHAUSTED. Se você
ativar a atualização durante o reparo, o
MIG vai verificar simultaneamente a disponibilidade em todas as seleções de instâncias
configuradas e recriar a VM usando um tipo de máquina alternativo disponível.
Como o MIG continua tentando recriar a VM usando o tipo de máquina original
enquanto verifica alternativas, talvez você ainda veja erros de falta de estoque registrados para o
tipo de máquina original. Ativar a atualização durante o reparo também ajuda a garantir que a
VM recriada use a configuração de flexibilidade de instâncias mais recente.
Para mais informações sobre reparos, consulte Como reparar VMs para alta disponibilidade.
Flexibilidade de instâncias e escalonamento automático
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 escalona horizontalmente 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áquina neste documento.
Quando um escalonador automático reduz o escalonamento horizontal de um MIG, o MIG seleciona as VMs a serem excluídas da seguinte maneira:
- O MIG 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 que serão excluídas.
O escalonamento automático funciona de maneira eficaz quando o MIG tem tipos de máquina com desempenho semelhante, por exemplo, máquinas com a mesma contagem de vCPUs. Caso contrário, quando o MIG for escalonado horizontalmente ou verticalmente, o escalonador automático poderá tentar adicionar ou remover o tipo de máquina de maior desempenho com mais frequência. Esse comportamento pode acontecer independentemente da classificação que você configurou para esse tipo de máquina.
Para mais informações sobre 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 disponibilidade
É possível configurar a flexibilidade de instâncias do MIG para melhorar a disponibilidade de recursos:
Tipos de máquina: a configuração básica é definir vários tipos de máquina em uma única classificação. Essa classificação única dá a elas a mesma preferência, permitindo que o MIG selecione qualquer uma delas 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: é possível aumentar ainda mais a chance de conseguir os recursos escolhendo todas as zonas ao criar o MIG e usando o formato de distribuição de destino
ANY. O formatoANYpermite 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 preempção para minimizar a interrupção da 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 preempção, o que pode resultar na seleção de um tipo de máquina com uma taxa de preempção mais alta.
Otimize os custos
Um MIG pode provisionar automaticamente as instâncias mais econômicas para sua infraestrutura quando você define as configurações de flexibilidade de instâncias 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, com o tipo de máquina de menor custo como o mais preferido. Isso ajuda a garantir que você receba 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 estão disponíveis.
Com base nas configurações de flexibilidade de instâncias, o MIG provisiona automaticamente a melhor combinação possível de tipos de máquina disponíveis para atender aos 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 de instâncias do MIG para maximizar o desempenho. Para isso, selecione as famílias e os tamanhos de máquina que melhor atendem à sua carga de trabalho. Em seguida, classifique os tipos de máquina com base no desempenho, do mais alto para o mais baixo, usando o tamanho mais preferido em cada família. Com base na classificação e nos tipos de máquina, o MIG seleciona as máquinas de maior desempenho entre todos os recursos disponíveis.
Como as gerações de máquinas mais recentes geralmente oferecem um desempenho maior 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 um desempenho equivalente. Por exemplo, ao
selecionar entre famílias de máquinas, é possível misturar diferentes contagens de CPU, como
misturar n1-standard-32 com 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 simplificada para os tipos de máquina mais recentes
É possível configurar a flexibilidade de instâncias do MIG para priorizar a adoção de tipos de máquina de última geração, usando tipos de máquina de gerações anteriores como alternativa para capacidade. Para fazer isso, crie uma seleção de instâncias 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 de disco específicas. Crie uma segunda seleção de instâncias com os tipos de máquina de geração mais antiga para servir como substituto. Atribua uma classificação mais alta (preferência mais baixa) 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
ANY. Essa configuração garante que o MIG verifique a capacidade
em todas as seleções e zonas configuradas e priorize o provisionamento das
máquinas de última geração em que a capacidade está disponível. Se o MIG não encontrar
capacidade suficiente da geração mais recente, ele provisionará tipos de máquina de gerações anteriores.
Essa abordagem garante que a capacidade total solicitada seja sempre atendida,
além de maximizar a participação do hardware mais recente.
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. É possível usar um MIG regional com uma única zona.
As VMs flex-start não são compatíveis com a flexibilidade de instâncias.
A flexibilidade de instâncias 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 da 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:Ative as atualizações em reparos.
Ao configurar
minCpuPlatformoudiskspara uma seleção de instância existente, você também precisa 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.É preciso 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âncias, use tipos de máquina 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 normalmente têm maior desempenho por vCPU, é possível misturar diferentes contagens de vCPU (por exemplo, misturar
n1-standard-32comn2-standard-28).No Cloud Load Balancing, tipos de máquina 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áquina com desempenho semelhante podem impedir a adição ou exclusão do tipo de máquina com o melhor desempenho.
A seguir
- Saiba mais sobre os diferentes tipos de máquina.
- Adicione flexibilidade de instâncias a um MIG.
- Confira a flexibilidade de instâncias em um MIG.
- Monitorar a distribuição de instâncias em MIGs.