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 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 na 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áquina 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âncias, consulte Adicionar flexibilidade de instâncias.
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â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 a flexibilidade de instâncias funciona
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 aqueles 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âncias 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áquina diferentes, configure uma lista de todos os tipos de máquina compatíveis com seu aplicativo em uma única 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 mais baixo 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 o hardware específico não é garantido, 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 de instância, como plataforma mínima de CPU (minCpuPlatform) e discos (disks), para substituir aquelas definidas no modelo de instância. Quando um MIG seleciona um tipo de máquina em 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âncias, o MIG usará as propriedades correspondentes do modelo para essa seleção.
A substituição dessas propriedades no nível de seleção de instâncias 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áquina que são executados em diferentes plataformas de CPU. É possível especificar uma plataforma mínima de CPU para instâncias criadas 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 selecionar automaticamente uma plataforma de CPU definindo o campo
minCpuPlatformcomoAUTOMATIC. Essa seleção automática substitui a configuração mínima da plataforma 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áquina 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 performance.
Substitua os discos ao misturar tipos de máquina que têm 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 que têm arquiteturas diferentes ou que não compartilham tecnologias de disco e especificar as imagens de inicialização ou os discos 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.
Ao especificar 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 neste documento.
Exemplo de substituições de plataforma mínima de CPU 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âncias substitui a configuração do modelo especificando uma plataforma mínima de CPU 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
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 a ordem de preferência. Em uma seleção de instâncias classificadas, o MIG verifica a disponibilidade de recursos e, em seguida, as reservas.
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.
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 oferece suporte ao 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 estiver disponível.ANY_SINGLE_ZONE: o MIG seleciona uma zona que tem a maioria dos tipos de máquina com base nas classificações, se configuradas, e em que o MIG pode criar a maioria das VMs com reservas não utilizadas.
Para mais informações sobre como um formato de distribuição de destino funciona, consulte Formato de distribuição de destino do MIG regional.
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 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. O MIG segue primeiro 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âncias não incluírem o tipo de máquina que corresponde às propriedades de reserva específicas, a criação da instância falhará.
Para mais informações sobre reservas, consulte Sobre as 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 garantir a menor interrupção possível para sua carga de trabalho. Se você quiser substituir esse comportamento, siga estas etapas:
Verifique a disponibilidade de recursos. Antes de criar um MIG com VMs spot, é possível verificar 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 Verificar 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. O MIG segue primeiro a ordem de preferência e 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 de instâncias e reparos de VMs
Por padrão, se uma VM em um MIG falhar, o MIG vai corrigir a VM recriando-a 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á melhorar as chances de obter recursos se ocorrer uma falta de estoque. Quando um MIG tenta recriar uma VM, se o tipo de máquina original da VM não estiver disponível, você receberá um erro de falta de estoque. Com as atualizações ativadas durante o reparo, 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. A ativação de atualizações 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 Sobre como reparar VMs para alta disponibilidade.
Flexibilidade de instâncias e escalonamento automático
Quando você configura o escalonamento automático em um MIG que tem 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 não escalonado automaticamente. Para mais informações, consulte Como um MIG seleciona tipos de máquina neste documento.
Quando um escalonador automático reduz um MIG, ele 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 com 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áquina de performance semelhante, por exemplo, máquinas com a mesma contagem de vCPUs. Caso contrário, quando o MIG aumenta ou diminui, o escalonador automático pode tentar adicionar ou remover o tipo de máquina de maior performance com mais frequência. Esse comportamento pode acontecer independentemente da classificação configurada 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 capacidade de obtenção
É possível configurar a flexibilidade de instâncias 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 uma única classificação. Essa classificação única oferece 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: é possível aumentar ainda mais a chance de obter os recursos escolhendo todas as zonas ao criar o MIG e usar o
ANYformato de distribuição de destino. O formatoANYpermite que o MIG pesquise a capacidade em todas as zonas.VMs spot e preempção: ao usar VMs spot, para maximizar as chances de obter as VMs e minimizar as preempções delas, 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 de 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ê configura as definições de flexibilidade de instâncias do MIG da seguinte maneira:
Tipos de máquina: selecione os tipos de máquina que oferecem a proporção custo-performance 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
ANYdestino formato de distribuição. Isso aumenta as chances de obter os tipos de máquina de menor custo nas zonas em que eles 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.
Maximizar a performance
É possível configurar a flexibilidade de instâncias do MIG para maximizar a performance. Para fazer isso, selecione famílias e tamanhos de máquinas que melhor atendam à sua carga de trabalho. Em seguida, classifique os tipos de máquina com base na performance, do mais alto ao mais baixo, usando o tamanho preferido em cada família. Com base na classificação e nos tipos de máquina, o MIG seleciona as máquinas de maior performance de todos os recursos disponíveis.
Como as gerações de máquinas mais recentes geralmente oferecem maior performance 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 uma performance equivalente. Por exemplo, ao selecionar entre famílias de máquinas, é possível misturar diferentes contagens de CPU, como n1-standard-32 com n2-standard-16.
Além disso, especificar uma minCpuPlatform para a seleção de instâncias pode garantir que o MIG selecione uma plataforma de CPU de alta performance.
Transição perfeita 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ção mais antiga como um fallback 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 maior). Se esses tipos de máquina exigirem configurações de disco diferentes, use as substituições de disco nessa seleção de instâncias para definir as propriedades de disco específicas. Crie uma segunda seleção de instâncias que contenha os tipos de máquina de geração mais antiga para servir como um fallback. Atribua uma classificação mais alta (preferência menor) a essa seleção de instâncias.
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 pesquise primeiro 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 de última geração, garantindo que a capacidade total solicitada seja sempre atendida, maximizando a participação do hardware mais recente.
Limitações
A flexibilidade de instâncias tem as seguintes limitações:
A flexibilidade de instâncias não é compatível com MIGs zonais. É possível usar um MIG regional com uma única zona.
A flexibilidade de instâncias não oferece suporte aos seguintes recursos do 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)
- Suspensão ou interrupção de 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
minCpuPlatformoudiskspara uma seleção de instâncias atual, também é necessário incluir o campomachineTypes. Sem o campomachineTypes, a operação falha com um erro.Não é possível aplicar a política com estado ou a configuração por instância a discos substituídos por uma seleção de instâncias.
É 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 o balanceamento de carga eficaz load balancing ou escalonamento automático em um MIG que tenha flexibilidade de instâncias, use tipos de máquina com performance semelhante, por exemplo, a mesma contagem de vCPUs. No entanto, "performance semelhante" não se limita a usar o mesmo tamanho em diferentes famílias. Como as gerações de máquinas mais recentes geralmente têm maior performance 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 de performance semelhante podem evitar a utilização excessiva de hardware menor e a subutilização de máquinas mais rápidas.
No escalonamento automático, tipos de máquina de performance semelhante podem impedir a adição ou exclusão do tipo de máquina de maior performance.
A seguir
- Saiba mais sobre diferentes tipos de máquina.
- Adicione flexibilidade de instâncias a um MIG.
- Confira a flexibilidade de instâncias em um MIG.