Este artigo mostra como criar um VMSS (Virtual Machine Scale set) com combinação de instâncias. A combinação de instâncias permite especificar vários tamanhos de máquina virtual (VM) para um único conjunto de escala e controlar como o Azure escolhe tamanhos no momento do provisionamento usando uma estratégia de alocação.
Confirme estes pré-requisitos antes de criar um conjunto de escala habilitado para combinação de instâncias:
- Vá para Conjuntos de dimensionamento de máquinas virtuais.
- Selecione o botão Criar para ir para a vista Criar um conjunto de escala de máquina virtual.
-
Na guia Noções básicas, preencha os campos obrigatórios. Se o campo não for chamado nas próximas seções, você poderá definir os campos para o que funciona melhor para seu conjunto de escalas.
- Certifique-se de selecionar uma região na qual a combinação de instâncias é suportada.
- Certifique-se de que o modo de 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 tamanho para selecionar até cinco tamanhos de VM. Depois de selecionar os tamanhos da VM, clique no botão Selecionar na parte inferior da página para retornar à guia Noções básicas do conjunto de escalas.
- No campo Estratégia de alocação , selecione sua estratégia de alocação.
- Caso utilize a estratégia de
Prioritized (preview) alocação, a secção Tamanho da classificação aparece abaixo da secção Estratégia de alocação. Selecione Classificar por prioridade para abrir a folha de priorização, onde é possível ajustar a prioridade dos tamanhos das VMs.
- Você pode especificar outras propriedades em guias subsequentes ou pode ir para Revisar + criar e selecionar o botão Criar na parte inferior da página para iniciar a implantação do conjunto de escala de combinação de instâncias.
Antes de usar comandos da CLI com combinação de instâncias, verifique se você está usando a versão correta da CLI. Certifique-se de que está a utilizar a versão 2.66.0 ou superior.
Você pode usar o seguinte comando básico para criar um conjunto de escala usando a mistura de instâncias, cujo padrão é usar a estratégia de alocação lowestPrice:
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 --skuprofile-allocation-strategy parâmetro, como o seguinte comando:
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 usando o seguinte comando, que usa como padrão a estratégia de lowestPrice 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 SkuProfileAllocationStrategy parâmetro, como o seguinte comando:
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 instâncias misturadas, 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 dimensionamento com combinação de instâncias usando a API REST, faça uma PUT solicitação para o seguinte ponto de extremidade:
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.name como Mix e especifique o número total de VMs:
"sku": {
"name": "Mix",
"capacity": {TotalNumberVMs}
},
Faça referência à sua sub-rede existente, da seguinte forma:
"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 usar a estratégia de alocação Prioritized (preview), pode atribuir uma 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 apenas ao usar a estratégia de alocação Prioritized (preview).
Dicas para implantações REST:
- Certifique-se
sku.name de que está definido como "Mix" e que sku.tier não está definido (ou está null).
- A
rank propriedade só é necessária para a Prioritized estratégia. Classificações com números mais baixos são de maior prioridade.
- 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.