Instansskydd för Azure Virtual Machine Scale Set-instanser

Skalningsuppsättningar för virtuella Azure-datorer ger bättre elasticitet för dina arbetsbelastningar via autoskalning, så att du kan konfigurera när infrastrukturen skalar ut och när den skalar in. Med skalningsuppsättningar kan du också centralt hantera, konfigurera och uppdatera ett stort antal virtuella datorer via olika inställningar för uppgraderingsprinciper . Du kan konfigurera en uppdatering av skalningsuppsättningsmodellen och den nya konfigurationen tillämpas automatiskt på varje skalningsuppsättningsinstans om du har angett uppgraderingsprincipen till Automatisk eller Rullande.

När ditt program bearbetar trafik kan det finnas situationer där du vill att specifika instanser ska behandlas annorlunda än resten av skalningsuppsättningsinstansen. Vissa instanser i skalningsuppsättningen kan till exempel utföra långvariga åtgärder och du vill inte att dessa instanser ska skalas in förrän åtgärderna har slutförts. Du kan också ha specialiserat några instanser i skalningsuppsättningen för att utföra ytterligare eller andra uppgifter än de andra medlemmarna i skalningsuppsättningen. Du kräver att dessa "speciella" virtuella datorer inte ändras med de andra instanserna i skalningsuppsättningen. Instansskydd ger ytterligare kontroller för att aktivera dessa och andra scenarier för ditt program.

Den här artikeln beskriver hur du kan tillämpa och använda de olika instansskyddsfunktionerna med skalningsuppsättningsinstanser.

Typer av instansskydd

Skalningsuppsättningar tillhandahåller två typer av instansskyddsfunktioner:

  • Skydda mot inskalning

    • Aktiverad via egenskapen protectFromScaleIn på skalningsuppsättningsinstansen
    • Skyddar instansen från autoskalningsinitierad inskalning
    • Användarinitierade instansåtgärder (inklusive borttagning av instanser) blockeras inte
    • Åtgärder som initieras på skalningsuppsättningen (uppgradering, omimering, frigöring osv.) blockeras inte
  • Skydda mot skalningsuppsättningsåtgärder

    • Aktiverad via egenskapen protectFromScaleSetActions på skalningsuppsättningsinstansen
    • Skyddar instansen från autoskalningsinitierad inskalning
    • Skyddar instansen från åtgärder som initieras på skalningsuppsättningen (till exempel uppgradering, omimering, frigör osv.)
    • Användarinitierade instansåtgärder (inklusive borttagning av instanser) blockeras inte
    • Borttagning av den fullständiga skalningsuppsättningen är inte blockerad

Skydda mot inskalning

Instansskydd kan tillämpas på skalningsuppsättningsinstanser när instanserna har skapats. Skydd tillämpas och ändras endast på instansmodellen och inte på skalningsuppsättningsmodellen.

Det finns flera sätt att tillämpa inskalningsskydd på dina skalningsuppsättningsinstanser enligt beskrivningen i exemplen nedan.

Azure Portal

Du kan använda inskalningsskydd via Azure-portalen för en instans i skalningsuppsättningen. Du kan inte justera fler än en instans i taget. Upprepa stegen för varje instans som du vill skydda.

  1. Gå till en befintlig VM-skalningsuppsättning.
  2. Välj Instanser på menyn till vänster under Inställningar.
  3. Välj namnet på den instans som du vill skydda.
  4. Välj fliken Skyddsprincip .
  5. På bladet Skyddsprincip väljer du alternativet Skydda från inskalning.
  6. Välj Spara.

REST-API

I följande exempel tillämpas inskalningsskydd på en instans i skalningsuppsättningen.

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

Kommentar

Med flexibelt orkestreringsläge stöds instansskydd endast med API-version 2023-09-01 och senare. För enhetligt orkestreringsläge är instansskydd tillgängligt med API-version 2019-03-01 och senare.

Azure PowerShell

Använd cmdleten Update-AzVmssVM för att tillämpa inskalningsskydd på din skalningsuppsättningsinstans.

I följande exempel tillämpas inskalningsskydd på en instans i skalningsuppsättningen med instans-ID 0.

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

Azure CLI 2.0

Använd az vmss update för att tillämpa inskalningsskydd på din skalningsuppsättningsinstans.

I följande exempel tillämpas inskalningsskydd på en instans i skalningsuppsättningen med instans-ID 0.

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

Skydda mot skalningsuppsättningsåtgärder

Instansskydd kan tillämpas på skalningsuppsättningsinstanser när instanserna har skapats. Skydd tillämpas och ändras endast på instansmodellen och inte på skalningsuppsättningsmodellen.

Om du skyddar en instans från skalningsuppsättningsåtgärder skyddas även instansen från autoskalningsinitierad inskalning.

Det finns flera sätt att tillämpa skalningsuppsättningsåtgärder på dina skalningsuppsättningsinstanser enligt beskrivningen i exemplen nedan.

Azure Portal

Du kan använda skydd mot skalningsuppsättningsåtgärder via Azure-portalen för en instans i skalningsuppsättningen. Du kan inte justera fler än en instans i taget. Upprepa stegen för varje instans som du vill skydda.

  1. Gå till en befintlig VM-skalningsuppsättning.
  2. Välj Instanser på menyn till vänster under Inställningar.
  3. Välj namnet på den instans som du vill skydda.
  4. Välj fliken Skyddsprincip .
  5. På bladet Skyddsprincip väljer du alternativet Skydda från skalningsuppsättningsåtgärder.
  6. Välj Spara.

REST-API

I följande exempel tillämpas skydd mot skalningsuppsättningsåtgärder för en instans i skalningsuppsättningen.

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

Kommentar

Instansskydd stöds endast med API-version 2019-03-01 och senare.
Om du skyddar en instans från skalningsuppsättningsåtgärder skyddas även instansen från autoskalningsinitierad inskalning. Du kan inte ange "protectFromScaleIn": false när du anger "protectFromScaleSetActions": true

Azure PowerShell

Använd cmdleten Update-AzVmssVM för att tillämpa skydd mot skalningsuppsättningsåtgärder på din skalningsuppsättningsinstans.

I följande exempel tillämpas skydd mot skalningsuppsättningsåtgärder på en instans i skalningsuppsättningen med instans-ID 0.

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

Azure CLI 2.0

Använd az vmss update för att tillämpa skydd mot skalningsuppsättningsåtgärder på din skalningsuppsättningsinstans.

I följande exempel tillämpas skydd mot skalningsuppsättningsåtgärder på en instans i skalningsuppsättningen med instans-ID 0.

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

Felsöka

Ingen protectionPolicy för skalningsuppsättningsmodell

Instansskydd gäller endast för skalningsuppsättningsinstanser och inte på skalningsuppsättningsmodellen.

Ingen protectionPolicy för skalningsuppsättningsinstansmodell

Som standard tillämpas inte skyddsprincipen på en instans när den skapas.

Du kan använda instansskydd för skalningsuppsättningsinstanser när instanserna har skapats.

Det går inte att tillämpa instansskydd

Instansskydd stöds endast med API-version 2019-03-01 och senare. Kontrollera den API-version som används och uppdatera efter behov. Du kan också behöva uppdatera PowerShell eller CLI till den senaste versionen.

Nästa steg

Lär dig hur du distribuerar ditt program på VM-skalningsuppsättningar.