Este artigo mostra como criar um Conjunto de Dimensionamento de Máquinas Virtuais (VMSS) com a combinação de instâncias. Mistura de instâncias permite especificar vários tamanhos de VM (máquina virtual) para um único conjunto de dimensionamento e controlar como o Azure escolhe tamanhos durante o provisionamento usando uma estratégia de alocação.
Confirme esses pré-requisitos antes de criar um conjunto de escalonamento habilitado para combinação de instâncias:
- Acesse Conjuntos de dimensionamento de máquinas virtuais.
- Selecione o botão Criar para ir para o modo de exibição Criar um conjunto de dimensionamento de máquinas virtuais .
- Na guia Noções básicas , preencha os campos necessários. Se o campo não for chamado nas próximas seções, você pode configurar os campos da maneira que funcionar melhor para o seu conjunto de dimensionamento.
- Certifique-se de selecionar uma região na qual a combinação de instâncias seja suportada.
- Verifique se o modo orquestração está definido como Flexível.
- Na seção Tamanho , clique em Selecionar até 5 tamanhos e a página Selecionar um tamanho de VM será exibida.
- Use o seletor de tamanhos para escolher até cinco tamanhos de VM. Depois de selecionar os tamanhos das VMs, clique no botão Selecionar na parte inferior da página para voltar à guia Básico do conjunto de dimensionamento.
- No campo Estratégia de alocação , selecione sua estratégia de alocação.
- Se você usar a
Prioritized (preview) estratégia de alocação, a seção Tamanho da classificação será exibida abaixo da seção Estratégia de alocação. Selecione Prioridade de classificação para abrir a folha de priorização, na qual você pode ajustar a prioridade dos seus tamanhos de VM.
- Você pode especificar outras propriedades nas guias subsequentes ou ir para Examinar + criar e selecionar o botão Criar na parte inferior da página para iniciar a implantação do conjunto de dimensionamento de combinação de instâncias.
Antes de usar comandos da CLI com a combinação de instâncias, verifique se está usando a versão correta da CLI. Verifique se está usando a versão 2.66.0 ou superior.
Você pode usar o seguinte comando básico para criar um conjunto de dimensionamento usando a combinação de instâncias, que usa a estratégia de alocação lowestPrice por padrão:
az vmss create \
--name {myVMSS} \
--resource-group {myResourceGroup} \
--image ubuntu2204 \
--vm-sku Mix \
--skuprofile-vmsizes Standard_D2s_v5 Standard_D2as_v5 \
--authentication-type ssh \
--generate-ssh-keys
Para especificar a estratégia de alocação, use o parâmetro --skuprofile-allocation-strategy, como no comando a seguir:
az vmss create \
--name {myVMSS} \
--resource-group {myResourceGroup} \
--image ubuntu2204 \
--vm-sku Mix \
--skuprofile-vmsizes Standard_D2s_v5 Standard_D2as_v5 \
--skuprofile-allocation-strategy CapacityOptimized \
--authentication-type ssh \
--generate-ssh-keys
Você pode usar o seguinte comando básico para criar um conjunto de escala usando a combinação de instâncias com o seguinte comando, que usa lowestPrice por padrão a estratégia de alocação:
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Credential $credentials `
-VMScaleSetName $vmssName `
-DomainNameLabel $domainNameLabel1 `
-VMSize "Mix" `
-SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4");
Para especificar a estratégia de alocação, use o parâmetro SkuProfileAllocationStrategy, como no comando a seguir:
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Credential $credentials `
-VMScaleSetName $vmssName `
-DomainNameLabel $domainNameLabel1 `
-SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4") `
-SkuProfileAllocationStrategy "CapacityOptimized";
Para criar um conjunto de escalas usando um objeto de configuração de conjunto de escalas utilizando uma combinação de instâncias, use o seguinte comando:
$vmss = New-AzVmssConfig -Location $loc -SkuCapacity 2 -UpgradePolicyMode 'Manual' -EncryptionAtHost -SecurityType $stnd -SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4") -SkuProfileAllocationStrategy "CapacityOptimized"`
| Add-AzVmssNetworkInterfaceConfiguration -Name 'test' -Primary $true -IPConfiguration $ipCfg `
| Set-AzVmssOSProfile -ComputerNamePrefix 'test' -AdminUsername $adminUsername -AdminPassword $adminPassword `
| Set-AzVmssStorageProfile -OsDiskCreateOption 'FromImage' -OsDiskCaching 'None' `
-ImageReferenceOffer $imgRef.Offer -ImageReferenceSku $imgRef.Skus -ImageReferenceVersion 'latest' `
-ImageReferencePublisher $imgRef.PublisherName;
$vmssResult = New-AzVmss -ResourceGroupName $resourceGroupName -Name $vmssName -VirtualMachineScaleSet $vmss
Para implantar um conjunto de escalas com mix de instâncias usando a API REST, faça uma PUT solicitação para o seguinte endpoint:
PUT https://management.azure.com/subscriptions/{YourSubscriptionId}/resourceGroups/{YourResourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{yourScaleSetName}?api-version=2023-09-01
No corpo da solicitação, defina sku.nameMix e especifique o número total de VMs:
"sku": {
"name": "Mix",
"capacity": {TotalNumberVMs}
},
Faça referência à sua sub-rede existente, da seguinte maneira:
"subnet": {
"id": "/subscriptions/{YourSubscriptionId}/resourceGroups/{YourResourceGroupName}/providers/Microsoft.Network/virtualNetworks/{YourVnetName}/subnets/default"
},
Especifique o skuProfile com até cinco tamanhos de VM. O exemplo a seguir usa três tamanhos e a estratégia de alocação lowestPrice:
"skuProfile": {
"vmSizes": [
{ "name": "Standard_D8s_v5"},
{ "name": "Standard_D8as_v5"},
{ "name": "Standard_D8s_v4"}
],
"allocationStrategy": "lowestPrice"
},
Se você usar a Prioritized (preview) estratégia de alocação, poderá atribuir uma classificação de prioridade a cada tamanho de VM. Por exemplo:
"skuProfile": {
"vmSizes": [
{ "name": "Standard_D8s_v5", "rank": 1 },
{ "name": "Standard_D8as_v5", "rank": 2 },
{ "name": "Standard_D8s_v4", "rank": 3 }
],
"allocationStrategy": "Prioritized"
},
- Substitua espaços reservados, como
{YourSubscriptionId}, por seus valores reais.
- Você pode especificar até cinco tamanhos de VM na
vmSizes matriz.
- A propriedade
rank é necessária somente ao usar a estratégia de alocação Prioritized (preview).
Dicas para implantações REST:
- Verifique se
sku.name está definido "Mix" e isso sku.tier não está definido (ou é null).
- A propriedade
rank só é necessária para a estratégia Prioritized. As classificações com números mais baixos são prioridades mais altas.
- Para confirmar a disponibilidade e a cota do tamanho da VM antes da implantação, valide o modelo em relação à assinatura e à região de destino.