Protezione delle istanze per le istanze del set di scalabilità di macchine virtuali di Azure

Azure set di scalabilità di macchine virtuali abilitare una migliore elasticità per i carichi di lavoro tramite scalabilità automatica, in modo da poter configurare quando l'infrastruttura viene ridimensionata e quando viene ridimensionata. I set di scalabilità consentono inoltre di gestire, configurare e aggiornare in modo centralizzato un numero elevato di macchine virtuali tramite diverse impostazioni dei criteri di aggiornamento. È possibile configurare un aggiornamento del modello del set di scalabilità. Se il criterio di aggiornamento è stato impostato come automatico o continuo, la nuova configurazione viene applicata automaticamente a ogni istanza del set di scalabilità.

Quando l'applicazione elabora il traffico, possono verificarsi situazioni in cui si desidera che istanze specifiche vengano trattate in modo diverso rispetto al resto delle istanze del set di scalabilità. Ad esempio, alcune istanze nel set di scalabilità potrebbero eseguire operazioni con esecuzione prolungata ed è possibile che non si desideri che queste istanze vengano ridimensionate fino al completamento delle operazioni. È anche possibile che si desideri specializzare alcune istanze del set di scalabilità per eseguire attività aggiuntive o diverse da quelle degli altri membri del set di scalabilità. È necessario che le macchine virtuali "speciali" non vengano modificate con le altre istanze nel set di scalabilità. La protezione dell'istanza fornisce controlli aggiuntivi per gestire questi e altri scenari per l'applicazione.

Questo articolo descrive come applicare e usare le diverse funzionalità di protezione dell'istanza con le istanze del set di scalabilità.

Tipi di protezione delle istanze

I set di scalabilità offrono due tipi di funzionalità di protezione delle istanze:

  • Proteggi dalla riduzione

    • Attivata tramite la proprietà protectFromScaleIn nell’istanza del set di scalabilità
    • Protegge l'istanza dalla riduzione attivata dalla scalabilità automatica
    • Le operazioni dell'istanza avviate dall'utente (inclusa l'eliminazione dell'istanza) non vengono bloccate
    • Le operazioni avviate nel set di scalabilità (aggiornamento, ricreazione dell'immagine, deallocazione e così via) non vengono bloccate
  • Proteggi dalle azioni del set di scalabilità

    • Attivata tramite la proprietà protectFromScaleSetActions nell’istanza del set di scalabilità
    • Protegge l'istanza dalla riduzione attivata dalla scalabilità automatica
    • Protegge le istanze dalle operazioni avviate nel set di scalabilità (aggiornamento, ricreazione dell'immagine, deallocazione e così via)
    • Le operazioni dell'istanza avviate dall'utente (inclusa l'eliminazione dell'istanza) non vengono bloccate
    • L'eliminazione del set di scalabilità completo non viene bloccata

Proteggi dalla riduzione

La protezione dell'istanza può essere applicata alle istanze del set di scalabilità dopo la loro creazione. La protezione viene applicata e modificata solo per il modello di istanza e non per il modello del set di scalabilità.

Esistono diversi modi per applicare la protezione dalla riduzione alle istanze del set di scalabilità, come descritto negli esempi seguenti.

Azure portal

È possibile applicare la protezione dalla riduzione a un'istanza del set di scalabilità tramite il portale di Azure. Non è possibile modificare più di un'istanza alla volta. Ripetere questi passaggi per ogni istanza da proteggere.

  1. Passare a un set di scalabilità di macchine virtuali esistente.
  2. Selezionare Istanze dal menu a sinistra nelle Impostazioni.
  3. Selezionare il nome dell’istanza da proteggere.
  4. Selezionare la scheda Criteri di protezione.
  5. Nel pannello Criteri di protezione selezionare l'opzione Proteggi da riduzione.
  6. Seleziona Salva.

REST API

Nell'esempio seguente viene applicata la protezione con scalabilità da riduzione in un'istanza del set di scalabilità.

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

Nota

Con la modalità di orchestrazione flessibile, la protezione delle istanze è supportata solo con l'API versione 2023-09-01 e successive. Per la modalità di orchestrazione uniforme, la protezione dell'istanza è disponibile con l'API versione 2019-03-01 e successive.

Azure PowerShell

Usare il cmdlet Update-AzVmssVM per applicare la protezione dalla riduzione all'istanza del set di scalabilità.

Nell'esempio seguente viene applicata la protezione da riduzione in un'istanza del set di scalabilità con ID istanza 0.

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

Interfaccia della riga di comando di Azure 2.0

Usare az vmss update per applicare la protezione da riduzione all'istanza del set di scalabilità.

Nell'esempio seguente viene applicata la protezione da riduzione in un'istanza del set di scalabilità con ID istanza 0.

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

Proteggi dalle azioni del set di scalabilità

La protezione dell'istanza può essere applicata alle istanze del set di scalabilità dopo la loro creazione. La protezione viene applicata e modificata solo per il modello di istanza e non per il modello del set di scalabilità.

La protezione di un'istanza dalle azioni del set di scalabilità protegge l'istanza anche dalla riduzione attivata dalla scalabilità automatica.

Esistono diversi modi per applicare la protezione dalle azioni del set di scalabilità nelle istanze del set di scalabilità, come descritto negli esempi seguenti.

Azure portal

È possibile applicare la protezione dalle azioni del set di scalabilità tramite il portale di Azure. Non è possibile modificare più di un'istanza alla volta. Ripetere questi passaggi per ogni istanza da proteggere.

  1. Passare a un set di scalabilità di macchine virtuali esistente.
  2. Selezionare Istanze dal menu a sinistra nelle Impostazioni.
  3. Selezionare il nome dell’istanza da proteggere.
  4. Selezionare la scheda Criteri di protezione.
  5. Nel pannello Criteri di protezione selezionare l'opzione Proteggi dalle azioni del set di scalabilità.
  6. Seleziona Salva.

REST API

Nell'esempio seguente viene applicata la protezione dalle azioni del set di scalabilità a un'istanza del set di scalabilità.

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

La protezione dell'istanza è supportata solo con la versione 2019-03-01 dell’API e versioni successive.
La protezione di un'istanza dalle azioni del set di scalabilità protegge anche l'istanza da scalabilità automatica avviata con scalabilità orizzontale. Non è possibile specificare "protectFromScaleIn" come false quando si imposta "protectFromScaleSetActions" come true

Azure PowerShell

Usare il cmdlet Update-AzVmssVM per applicare la protezione dalle azioni del set di scalabilità all'istanza del set di scalabilità.

Nell'esempio seguente viene applicata la protezione dalle azioni del set di scalabilità a un'istanza del set di scalabilità con ID istanza 0.

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

Interfaccia della riga di comando di Azure 2.0

Usare il cmdlet az vmss update per applicare la protezione dalle azioni del set di scalabilità all'istanza del set di scalabilità.

Nell'esempio seguente viene applicata la protezione dalle azioni del set di scalabilità a un'istanza del set di scalabilità con ID istanza 0.

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

Risoluzione dei problemi

Nessun protectionPolicy per il modello del set di scalabilità

La protezione dell'istanza è applicabile solo alle istanze del set di scalabilità e non al modello del set di scalabilità.

Nessun protectionPolicy per il modello di istanza del set di scalabilità

Per impostazione predefinita, i criteri di protezione non vengono applicati a un'istanza al momento della creazione.

La protezione dell'istanza può essere applicata alle istanze del set di scalabilità dopo la loro creazione.

Non è possibile applicare la protezione dell'istanza

La protezione dell'istanza è supportata solo con la versione 2019-03-01 dell’API e versioni successive. Controllare la versione dell'API in uso e aggiornarla come necessario. Potrebbe essere necessario aggiornare anche PowerShell o l'interfaccia della riga di comando alla versione più recente.

Passaggi successivi

Informazioni su come distribuire l'applicazione nei set di scalabilità di macchine virtuali.