Proteção de instância para instâncias do Conjunto de Dimensionamento de Máquina Virtual do Azure

Nota

Recomendamos o uso da Orquestração Flexível para novas cargas de trabalho. Para obter mais informações, consulte Modos de ordenação para conjuntos de escala de máquina virtual no Azure.

Os Conjuntos de Dimensionamento de Máquina Virtual do Azure permitem uma melhor elasticidade para as suas cargas de trabalho através da Escala Automática, para que possa configurar quando a sua infraestrutura é dimensionada e quando é dimensionada. Os conjuntos de dimensionamento também permitem gerenciar, configurar e atualizar centralmente um grande número de VMs por meio de diferentes configurações de política de atualização . Você pode configurar uma atualização no modelo de conjunto de escala e a nova configuração é aplicada automaticamente a cada instância do conjunto de escalas se você tiver definido a política de atualização como Automática ou Rolante.

À medida que seu aplicativo processa o tráfego, pode haver situações em que você deseja que instâncias específicas sejam tratadas de forma diferente do restante da instância do conjunto de escala. Por exemplo, determinadas instâncias no conjunto de escala podem estar executando operações de longa duração, e você não deseja que essas instâncias sejam dimensionadas até que as operações sejam concluídas. Você também pode ter especializado algumas instâncias no conjunto de escala para executar tarefas adicionais ou diferentes dos outros membros do conjunto de escala. Você precisa que essas VMs 'especiais' não sejam modificadas com as outras instâncias no conjunto de escala. A proteção de instância fornece os controles adicionais para habilitar esses e outros cenários para seu aplicativo.

Este artigo descreve como você pode aplicar e usar os diferentes recursos de proteção de instância com instâncias de conjunto de escala.

Tipos de proteção de instância

Os conjuntos de dimensionamento fornecem dois tipos de recursos de proteção de instância:

  • Proteja-se contra aumento de escala

    • Habilitado por meio da propriedade protectFromScaleIn na instância do conjunto de escala
    • Protege a instância contra o dimensionamento iniciado pelo Autoscale
    • As operações de instância iniciadas pelo usuário (incluindo a exclusão de instância) não são bloqueadas
    • As operações iniciadas no conjunto de escala (upgrade, reimage, deallocate, etc.) não são bloqueadas
  • Proteja-se de ações de dimensionamento definido

    • Habilitado por meio da propriedade protectFromScaleSetActions na instância do conjunto de escala
    • Protege a instância contra o dimensionamento iniciado pelo Autoscale
    • Protege a instância de operações iniciadas no conjunto de escala (como upgrade, reimage, deallocate, etc.)
    • As operações de instância iniciadas pelo usuário (incluindo a exclusão de instância) não são bloqueadas
    • A exclusão do conjunto de escala completa não é bloqueada

Proteja-se contra aumento de escala

A proteção de instância pode ser aplicada para dimensionar instâncias de conjunto depois que as instâncias são criadas. A proteção é aplicada e modificada apenas no modelo de instância e não no modelo de conjunto de escala.

Há várias maneiras de aplicar a proteção de dimensionamento em suas instâncias de conjunto de escala, conforme detalhado nos exemplos abaixo.

Portal do Azure

Você pode aplicar proteção de escala por meio do portal do Azure a uma instância no conjunto de escala. Não é possível ajustar mais de uma instância de cada vez. Repita as etapas para cada instância que você deseja proteger.

  1. Vá para um Conjunto de Dimensionamento de Máquina Virtual existente.
  2. Selecione Instâncias no menu à esquerda, em Configurações.
  3. Selecione o nome da instância que você deseja proteger.
  4. Selecione a guia Política de proteção .
  5. Na folha Política de proteção, selecione a opção Proteger contra aumento de escala.
  6. Selecione Guardar.

API REST

O exemplo a seguir aplica proteção de escala a uma instância no conjunto de escalas.

PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
  "properties": {
    "protectionPolicy": {
      "protectFromScaleIn": true
    }
  }        
}

Nota

Com o modo de orquestração flexível, a proteção de instância só é suportada com a API versão 2023-09-01 e superior. Para o modo de orquestração uniforme, a proteção de instância está disponível com a API versão 2019-03-01 e superior.

Azure PowerShell

Use o cmdlet Update-AzVmssVM para aplicar proteção de escala à instância do conjunto de escala.

O exemplo a seguir aplica proteção de escala a uma instância no conjunto de escala com ID de instância 0.

Update-AzVmssVM `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myVMScaleSet" `
  -InstanceId 0 `
  -ProtectFromScaleIn $true

CLI 2.0 do Azure

Use az vmss update para aplicar proteção de escala à instância do conjunto de escalas.

O exemplo a seguir aplica proteção de escala a uma instância no conjunto de escala com ID de instância 0.

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --instance-id 0 \
  --protect-from-scale-in true

Proteja-se de ações de dimensionamento definido

A proteção de instância pode ser aplicada para dimensionar instâncias de conjunto depois que as instâncias são criadas. A proteção é aplicada e modificada apenas no modelo de instância e não no modelo de conjunto de escala.

A proteção de uma instância contra ações de conjunto de dimensionamento também protege a instância contra o dimensionamento iniciado automaticamente.

Há várias maneiras de aplicar a proteção de ações de conjunto de escala em suas instâncias de conjunto de escala, conforme detalhado nos exemplos abaixo.

Portal do Azure

Você pode aplicar proteção contra ações de conjunto de escala por meio do portal do Azure a uma instância no conjunto de escala. Não é possível ajustar mais de uma instância de cada vez. Repita as etapas para cada instância que você deseja proteger.

  1. Vá para um Conjunto de Dimensionamento de Máquina Virtual existente.
  2. Selecione Instâncias no menu à esquerda, em Configurações.
  3. Selecione o nome da instância que você deseja proteger.
  4. Selecione a guia Política de proteção .
  5. Na folha Política de proteção, selecione a opção Proteger de ações de conjunto de escala.
  6. Selecione Guardar.

API REST

O exemplo a seguir aplica proteção contra ações de conjunto de escala a uma instância no conjunto de escala.

PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vMScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
  "properties": {
    "protectionPolicy": {
      "protectFromScaleIn": true,
      "protectFromScaleSetActions": true
    }
  }        
}

Nota

A proteção de instância só é suportada com a API versão 2019-03-01 e superior.
A proteção de uma instância contra ações de conjunto de dimensionamento também protege a instância contra o dimensionamento iniciado automaticamente. Não é possível especificar "protectFromScaleIn": false ao definir "protectFromScaleSetActions": true

Azure PowerShell

Use o cmdlet Update-AzVmssVM para aplicar proteção contra ações de conjunto de escala à sua instância de conjunto de escala.

O exemplo a seguir aplica proteção contra ações de conjunto de escala a uma instância no conjunto de escala com ID de instância 0.

Update-AzVmssVM `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myVMScaleSet" `
  -InstanceId 0 `
  -ProtectFromScaleIn $true `
  -ProtectFromScaleSetAction $true

CLI 2.0 do Azure

Use az vmss update para aplicar proteção contra ações de conjunto de escala à sua instância de conjunto de escala.

O exemplo a seguir aplica proteção contra ações de conjunto de escala a uma instância no conjunto de escala com ID de instância 0.

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --instance-id 0 \
  --protect-from-scale-in true \
  --protect-from-scale-set-actions true

Resolver problemas

Sem proteçãoPolítica no modelo de conjunto de escala

A proteção de instância só é aplicável em instâncias de conjunto de escala e não no modelo de conjunto de escala.

Sem proteçãoPolítica no modelo de instância de conjunto de escala

Por padrão, a política de proteção não é aplicada a uma instância quando ela é criada.

Você pode aplicar a proteção de instância para dimensionar instâncias definidas depois que as instâncias são criadas.

Não é possível aplicar proteção de instância

A proteção de instância só é suportada com a API versão 2019-03-01 e superior. Verifique a versão da API que está sendo usada e atualize conforme necessário. Também pode ser necessário atualizar seu PowerShell ou CLI para a versão mais recente.

Próximos passos

Saiba como implantar seu aplicativo em conjuntos de dimensionamento de máquina virtual.