Proteção de instância para instâncias dos conjuntos de dimensionamento de máquinas virtuais do Azure

Os Conjuntos de Dimensionamento de Máquinas Virtuais do Azure permitem uma melhor elasticidade para suas cargas de trabalho por meio de dimensionamento automático, ou seja, você pode configurar quando sua infraestrutura é expandida e quando ela é reduzida. Os conjuntos de dimensionamento também permitem que você gerencie, configure e atualize 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 do conjunto de dimensionamento e, se você tiver definido a política de atualização como automática ou sem interrupção, a nova configuração será aplicada automaticamente a cada instância do conjunto de dimensionamento.

À medida que seu aplicativo processa o tráfego, pode haver situações em que você deseja que instâncias específicas sejam tratadas de maneira diferente do restante da instância do conjunto de dimensionamento. Por exemplo, determinadas instâncias no conjunto de dimensionamento podem estar executando operações de longa execução e você pode não querer que essas instâncias sejam reduzidas horizontalmente até que as operações sejam concluídas. Você também pode ter especializado algumas instâncias no conjunto de dimensionamento para executar tarefas adicionais ou diferentes dos outros membros do conjunto de dimensionamento. Você precisa que essas VMs ' especiais ' não sejam modificadas com as outras instâncias no conjunto de dimensionamento. 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 as diferentes funcionalidades de proteção de instância com instâncias de conjunto de dimensionamento.

Tipos de proteção de instância

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

  • Proteger contra redução horizontal

    • Habilitado por meio da propriedade protectFromScaleIn na instância do conjunto de dimensionamento
    • Protege a instância de redução horizontal iniciada por dimensionamento automático
    • As operações de instância iniciadas pelo usuário (incluindo exclusão de instância) não são bloqueadas
    • As operações iniciadas no conjunto de dimensionamento (atualizar, refazer imagem, desalocar etc.) não são bloqueadas
  • Proteger contra as ações do conjunto de dimensionamento

    • Habilitado por meio da propriedade protectFromScaleSetActions na instância do conjunto de dimensionamento
    • Protege a instância de redução horizontal iniciada por dimensionamento automático
    • Protege a instância de operações iniciadas no conjunto de dimensionamento (como atualizar, refazer imagem, desalocar etc.)
    • As operações de instância iniciadas pelo usuário (incluindo exclusão de instância) não são bloqueadas
    • A exclusão do conjunto de dimensionamento inteiro não é bloqueada

Proteger contra redução horizontal

A proteção da instância pode ser aplicada às instâncias do conjunto de dimensionamento depois que as instâncias são criadas. A proteção é aplicada e modificada somente no modelo de instância e não no modelo de conjunto de dimensionamento.

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

Portal do Azure

Você pode aplicar a proteção contra redução horizontal por meio do portal do Azure a uma instância no conjunto de dimensionamento. Você não pode ajustar mais de uma instância por vez. Repita as etapas para cada instância que deseja proteger.

  1. Acesse um conjunto de dimensionamento de máquinas virtuais 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 redução horizontal.
  6. Clique em Salvar.

API REST

O exemplo a seguir aplica a proteção contra redução horizontal a uma instância no conjunto de dimensionamento.

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

Observação

Com o modo de orquestração flexível, a proteção de instância só tem suporte 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.

PowerShell do Azure

Use o cmdlet Update-AzVmssVM para aplicar a proteção contra redução horizontal à sua instância do conjunto de dimensionamento.

O exemplo a seguir aplica a proteção contra redução horizontal a uma instância no conjunto de dimensionamento que tem a ID de instância igual a 0.

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

CLI do Azure 2.0

Use az vmss update para aplicar a proteção contra redução horizontal à sua instância do conjunto de dimensionamento.

O exemplo a seguir aplica a proteção contra redução horizontal a uma instância no conjunto de dimensionamento que tem a ID de instância igual a 0.

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

Proteger contra as ações do conjunto de dimensionamento

A proteção da instância pode ser aplicada às instâncias do conjunto de dimensionamento depois que as instâncias são criadas. A proteção é aplicada e modificada somente no modelo de instância e não no modelo de conjunto de dimensionamento.

Quando uma instância é protegida de ações do conjunto de dimensionamento, ela consequentemente também é protegida de redução horizontal iniciada por dimensionamento automático.

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

Portal do Azure

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

  1. Acesse um conjunto de dimensionamento de máquinas virtuais 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 as ações do conjunto de dimensionamento.
  6. Clique em Salvar.

API REST

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

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
    }
  }        
}

Observação

A proteção de instância só é compatível com APIs de versão 2019-03-01 e posterior.
Quando uma instância é protegida de ações do conjunto de dimensionamento, ela consequentemente também é protegida de redução horizontal iniciada por dimensionamento automático. Você não pode especificar "protectFromScaleIn": false ao definir "protectFromScaleSetActions": true

Azure PowerShell

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

O exemplo a seguir aplica a proteção contra ações do conjunto de dimensionamento a uma instância no conjunto de dimensionamento que tenha a ID de instância igual a 0.

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

CLI do Azure 2.0

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

O exemplo a seguir aplica a proteção contra ações do conjunto de dimensionamento a uma instância no conjunto de dimensionamento que tenha a ID de instância igual a 0.

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

Solucionar problemas

Nenhuma protectionPolicy no modelo de conjunto de dimensionamento

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

Nenhuma protectionPolicy no modelo de instância do conjunto de dimensionamento

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

A proteção da instância pode ser aplicada às instâncias do conjunto de dimensionamento depois que as instâncias são criadas.

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

A proteção de instância só é compatível com APIs de versão 2019-03-01 e posterior. Verifique a versão da API que está sendo usada e atualize conforme necessário. Talvez você também precise atualizar o PowerShell ou a CLI para a versão mais recente.

Próximas etapas

Aprenda como Implantar o aplicativo em Conjuntos de Dimensionamento de Máquinas Virtuais.