Aggiornamenti automatici dell'immagine del sistema operativo del set di scalabilità di macchine virtuali di Azure

Nota

Molti dei passaggi elencati in questo documento si applicano alle set di scalabilità di macchine virtuali usando la modalità di orchestrazione uniforme. È consigliabile usare l'orchestrazione flessibile per i nuovi carichi di lavoro. Per altre informazioni, vedere Modalità di orchestrazione per i set di scalabilità di macchine virtuali in Azure.

L'abilitazione degli aggiornamenti automatici per l'immagine del sistema operativo nel set di scalabilità è utile per facilitare la gestione degli aggiornamenti, grazie alla possibilità di aggiornare in modo sicuro e automatico il disco del sistema operativo per tutte le istanze nel set di scalabilità.

L'aggiornamento automatico del sistema operativo presenta le caratteristiche seguenti:

  • Una volta configurato, l'immagine del sistema operativo più recente pubblicata dagli editori di immagini viene applicata automaticamente al set di scalabilità senza l'intervento dell'utente.
  • Aggiorna i batch di istanze in sequenza ogni volta che viene pubblicata una nuova immagine dal server di pubblicazione.
  • Si integra con i probe di integrità dell'applicazione e con l'estensione Integrità applicazione.
  • Funziona per tutte le dimensioni delle macchine virtuali e per le immagini Windows e Linux, incluse immagini personalizzate tramite La raccolta di calcolo di Azure.
  • È possibile rifiutare esplicitamente gli aggiornamenti automatici in qualsiasi momento (gli aggiornamenti del sistema operativo possono anche essere avviati manualmente).
  • Il disco del sistema operativo di una macchina virtuale viene sostituito con il nuovo disco del sistema operativo creato con una versione più recente dell'immagine. Le estensioni configurate e gli script di dati personalizzati vengono eseguiti, mentre i dischi dati persistenti vengono mantenuti.
  • È supportata la sequenziazione delle estensioni.
  • Può essere abilitato in un set di scalabilità di qualsiasi dimensione.

Nota

Prima di abilitare gli aggiornamenti automatici delle immagini del sistema operativo, vedere la sezione requisiti di questa documentazione.

Come funziona l'aggiornamento dell'immagine del sistema operativo?

Un aggiornamento funziona sostituendo il disco del sistema operativo di una macchina virtuale con un nuovo disco creato usando la versione dell'immagine. Tutte le estensioni configurate e gli script di dati personalizzati vengono eseguiti sul disco del sistema operativo, mentre i dischi dati vengono conservati. Per ridurre al minimo il tempo di inattività delle applicazioni, gli aggiornamenti vengono eseguiti in batch, aggiornando ogni volta non più del 20% del set di scalabilità.

È possibile integrare un probe di integrità dell'applicazione di Azure Load Balancer o un'estensione integrità dell'applicazione per tenere traccia dell'integrità dell'applicazione dopo un aggiornamento. È consigliabile incorporare un heartbeat dell'applicazione per convalidare l'esito positivo dell'aggiornamento.

Aggiornamenti di disponibilità

Il modello di disponibilità per gli aggiornamenti orchestrati della piattaforma descritti di seguito garantisce che le configurazioni di disponibilità in Azure vengano rispettate in più livelli di disponibilità.

Tra aree:

  • Un aggiornamento si sposta in Azure a livello globale in modo graduale per evitare errori di distribuzione a livello di Azure.
  • Una "fase" può avere una o più aree e un aggiornamento si sposta tra più fasi solo se le macchine virtuali idonee nell'aggiornamento della fase precedente sono state aggiornate correttamente.
  • Le aree geografiche abbinate non verranno aggiornate contemporaneamente e non possono trovarsi nella stessa fase regionale.
  • L'esito positivo di un aggiornamento viene misurato monitorando l'integrità di una macchina virtuale dopo l'aggiornamento.

All'interno di un'area:

  • Le macchine virtuali in zone di disponibilità diverse non vengono aggiornate contemporaneamente allo stesso aggiornamento.

All'interno di un 'set':

  • Tutte le macchine virtuali in un set di scalabilità comune non vengono aggiornate contemporaneamente.
  • Le macchine virtuali in un set di scalabilità di macchine virtuali comuni vengono raggruppate in batch e aggiornate all'interno dei limiti del dominio di aggiornamento, come descritto di seguito.

Il processo di aggiornamento orchestrato della piattaforma viene seguito per l'implementazione degli aggiornamenti delle immagini della piattaforma del sistema operativo supportati ogni mese. Per le immagini personalizzate tramite Azure Compute Gallery, viene avviata un aggiornamento dell'immagine solo per una determinata area di Azure quando la nuova immagine viene pubblicata e replicata nell'area del set di scalabilità.

Aggiornamento di macchine virtuali in un set di scalabilità

L'area di un set di scalabilità diventa idonea per ottenere gli aggiornamenti delle immagini tramite il processo di disponibilità per le immagini della piattaforma o la replica di nuove versioni di immagini personalizzate per La raccolta immagini di condivisione. L'aggiornamento dell'immagine viene quindi applicato a un singolo set di scalabilità in batch come indicato di seguito:

  1. Prima di iniziare il processo di aggiornamento, l'agente di orchestrazione garantisce che non più del 20% delle istanze nell'intero set di scalabilità non siano integre (per qualsiasi motivo).
  2. L'agente di orchestrazione dell'aggiornamento identifica il batch di istanze di macchina virtuale da aggiornare, con un batch con un massimo del 20% del numero totale di istanze, soggetto a una dimensione minima del batch di una macchina virtuale. Non sono previsti requisiti minimi per le dimensioni del set di scalabilità e i set di scalabilità con 5 o meno istanze avranno una macchina virtuale per ogni batch di aggiornamento (dimensioni minime del batch).
  3. Il disco del sistema operativo di ogni macchina virtuale nel batch di aggiornamento selezionato viene sostituito con un nuovo disco del sistema operativo creato dall'immagine. Tutte le estensioni e le configurazioni specificate nel modello del set di scalabilità vengono applicate all'istanza aggiornata.
  4. Per i set di scalabilità in cui sono configurati probe di integrità dell'applicazione o l'estensione Integrità applicazione, l'aggiornamento attende fino a 5 minuti che l'istanza risulti integra prima di procedere con l'aggiornamento del batch successivo. Se un'istanza di non recupera l'integrità in 5 minuti dopo un aggiornamento, per impostazione predefinita viene ripristinato il disco del sistema operativo precedente per l'istanza.
  5. L'agente di orchestrazione dell'aggiornamento tiene anche traccia della percentuale di istanze che diventano non integre dopo un aggiornamento. L'aggiornamento verrà interrotto se più del 20% delle istanze aggiornate diventa non integro durante il processo di aggiornamento.
  6. Questo processo continua fino a completare l'aggiornamento di tutte le istanze nel set di scalabilità.

L'agente di orchestrazione dell'aggiornamento del sistema operativo del set di scalabilità verifica l'integrità complessiva del set di scalabilità prima di aggiornare ogni batch. Durante l'aggiornamento di un batch, potrebbero esserci altre attività di manutenzione pianificate o non pianificate simultanee che potrebbero influire sull'integrità delle istanze del set di scalabilità. In questi casi, se più del 20% delle istanze del set di scalabilità diventa non integro, l'aggiornamento del set di scalabilità si interrompe alla fine del batch corrente.

Per modificare le impostazioni predefinite associate agli aggiornamenti in sequenza, vedere Criteri di aggiornamento in sequenza di Azure.

Nota

L'aggiornamento automatico del sistema operativo non aggiorna lo SKU dell'immagine di riferimento nel set di scalabilità. Per modificare lo SKU (ad esempio Ubuntu 18.04-LTS a 20.04-LTS), è necessario aggiornare il modello del set di scalabilità direttamente con lo SKU dell'immagine desiderato. L'editore di immagini e l'offerta non possono essere modificati per un set di scalabilità esistente.

Aggiornamento dell'immagine del sistema operativo e ricreazione dell'immagine

Sia l'aggiornamento dell'immagine del sistema operativo che la reimmagine sono metodi usati per aggiornare le macchine virtuali all'interno di un set di scalabilità, ma servono scopi diversi e hanno effetti distinti.

L'aggiornamento dell'immagine del sistema operativo comporta l'aggiornamento dell'immagine del sistema operativo sottostante usata per creare nuove istanze in un set di scalabilità. Quando si esegue un aggiornamento dell'immagine del sistema operativo, Azure creerà nuove istanze di macchina virtuale con l'immagine aggiornata del sistema operativo e sostituirà gradualmente le istanze precedenti della macchina virtuale nel set di scalabilità con quelle nuove. Questo processo viene in genere eseguito in fasi per garantire la disponibilità elevata. Gli aggiornamenti delle immagini del sistema operativo sono un modo non problematico per applicare aggiornamenti o modifiche al sistema operativo sottostante delle macchine virtuali in un set di scalabilità. Le istanze di macchina virtuale esistenti non vengono interessate fino a quando non vengono sostituite con le nuove istanze.

La ricreazione di un'istanza di macchina virtuale in un set di scalabilità è un'azione più immediata e di interruzione. Quando si sceglie di creare nuovamente l'immagine di un'istanza di macchina virtuale, Azure arresterà l'istanza di macchina virtuale selezionata, eseguirà l'operazione di ricreazione dell'immagine e quindi riavvia la macchina virtuale usando la stessa immagine del sistema operativo. In questo modo il sistema operativo viene reinstallato in modo efficace in tale istanza di macchina virtuale specifica. Il reimaging viene in genere usato quando è necessario risolvere o reimpostare un'istanza di macchina virtuale specifica a causa di problemi con tale istanza.

Differenze principali:

  • L'aggiornamento dell'immagine del sistema operativo è un processo graduale e senza interruzioni che aggiorna l'immagine del sistema operativo per l'intero set di scalabilità di macchine virtuali nel tempo, garantendo un impatto minimo sui carichi di lavoro in esecuzione.
  • La ricreazione dell'immagine è un'azione più immediata e di interruzione che influisce solo sull'istanza di macchina virtuale selezionata, arrestandola temporaneamente e reinstallando il sistema operativo.

Quando usare ogni metodo:

  • Usare l'aggiornamento delle immagini del sistema operativo quando si vuole aggiornare l'immagine del sistema operativo per l'intero set di scalabilità mantenendo la disponibilità elevata.
  • Usare Reimage quando è necessario risolvere i problemi o reimpostare un'istanza di macchina virtuale specifica all'interno del set di scalabilità di macchine virtuali.

È essenziale pianificare attentamente e scegliere il metodo appropriato in base ai requisiti specifici per ridurre al minimo le interruzioni delle applicazioni e dei servizi in esecuzione in un set di scalabilità di macchine virtuali.

Immagini del sistema operativo supportate

Attualmente sono supportate solo alcune immagini della piattaforma del sistema operativo. Le immagini personalizzate sono supportate se il set di scalabilità usa immagini personalizzate tramite Azure Compute Gallery.

Gli SKU della piattaforma seguenti sono attualmente supportati (e altri vengono aggiunti periodicamente):

Publisher Offerta sistema operativo Sku
Canonical UbuntuServer 18.04-LTS
Canonical UbuntuServer 18_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-focal 20_04-LTS
Canonical 0001-com-ubuntu-server-focal 20_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-1
MicrosoftCblMariner Cbl-Mariner 1-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2-Gen2
MicrosoftSqlServer Sql2017-ws2019 grande azienda
MicrosoftWindowsServer WindowsServer 2012-R2-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2016-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-containers-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers-gs
MicrosoftWindowsServer WindowsServer Data center 2022
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk-g2
MicrosoftWindowsServer WindowsServer Core 2022 Datacenter
MicrosoftWindowsServer WindowsServer 2022-Datacenter-core-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-g2
MicrosoftWindowsServer WindowsServer Datacenter-core-20h2-with-containers-smalldisk-gs
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition-smalldisk

Requisiti per la configurazione dell'aggiornamento automatico dell'immagine del sistema operativo

  • La proprietà version dell'immagine deve essere impostata su latest.
  • È necessario usare i probe di integrità dell'applicazione o l'estensione integrità dell'applicazione per i set di scalabilità non di Service Fabric. Per i requisiti di Service Fabric, vedere Requisiti di Service Fabric.
  • Usare l'API di calcolo versione 2018-10-01 o successiva.
  • Assicurarsi che le risorse esterne specificate nel modello del set di scalabilità siano disponibili e aggiornate. Ad esempio, URI della firma di accesso condiviso per il payload di bootstrap nelle proprietà di estensione della macchina virtuale, payload nell'account di archiviazione, riferimento ai segreti nel modello e altro.
  • Per i set di scalabilità che usano macchine virtuali Windows, a partire dalla versione 2019-03-01 dell'API di calcolo, la proprietà virtualMachineProfile.osProfile.windowsConfiguration.enableAutomatic Aggiornamenti deve essere impostata su false nella definizione del modello del set di scalabilità. La proprietà enableAutomatic Aggiornamenti abilita l'applicazione di patch in macchina virtuale in cui "Windows Update" applica patch del sistema operativo senza sostituire il disco del sistema operativo. Con gli aggiornamenti automatici delle immagini del sistema operativo abilitati nel set di scalabilità, che può essere eseguito impostando automaticOSUpgradePolicy.enableAutomaticOSUpgrade su true, non è necessario un processo di applicazione di patch aggiuntivo tramite Windows Update.

Nota

Dopo la sostituzione di un disco del sistema operativo tramite la ricreazione dell'immagine o l'aggiornamento, i dischi dati collegati potrebbero riassegnare le lettere di unità. Per conservare le stesse lettere di unità per i dischi collegati, è consigliabile usare uno script di avvio personalizzato.

Requisiti di Service Fabric

Se si usa Service Fabric, verificare che siano soddisfatte le condizioni seguenti:

  • Il livello di durabilità di Service Fabric è Silver o Gold. Se la durabilità di Service Fabric è Bronze, solo i tipi di nodo senza stato supportano gli aggiornamenti automatici delle immagini del sistema operativo.
  • L'estensione service fabric nella definizione del modello del set di scalabilità deve avere TypeHandlerVersion 1.1 o versione successiva.
  • Il livello di durabilità deve corrispondere al cluster di Service Fabric e all'estensione service fabric nella definizione del modello del set di scalabilità.
  • Un probe di integrità aggiuntivo o l'uso dell'estensione per l'integrità dell'applicazione non è necessario per la durabilità Silver o Gold. La durabilità bronze con tipi di nodo solo senza stato richiede un probe di integrità aggiuntivo.
  • La proprietà virtualMachineProfile.osProfile.windowsConfiguration.enableAutomatic Aggiornamenti proprietà deve essere impostata su false nella definizione del modello del set di scalabilità. La proprietà enableAutomatic Aggiornamenti abilita l'applicazione di patch in macchina virtuale tramite "Windows Update" e non è supportata nei set di scalabilità di Service Fabric. È consigliabile usare la proprietà automaticOSUpgradePolicy.enableAutomaticOSUpgrade .

Assicurarsi che le impostazioni di durabilità non siano corrispondenti nel cluster di Service Fabric e nell'estensione service fabric, perché una mancata corrispondenza genererà errori di aggiornamento. I livelli di durabilità possono essere modificati in base alle linee guida descritte in questa pagina.

Aggiornamento automatico dell'immagine del sistema operativo per immagini personalizzate

L'aggiornamento automatico delle immagini del sistema operativo è supportato per le immagini personalizzate distribuite tramite La raccolta di calcolo di Azure. Altre immagini personalizzate non sono supportate per gli aggiornamenti automatici delle immagini del sistema operativo.

Requisiti aggiuntivi per le immagini personalizzate

  • Il processo di installazione e configurazione per l'aggiornamento automatico dell'immagine del sistema operativo è lo stesso per tutti i set di scalabilità, come descritto nella sezione di configurazione di questa pagina.
  • Le istanze dei set di scalabilità configurate per gli aggiornamenti automatici delle immagini del sistema operativo verranno aggiornate alla versione dell'immagine della raccolta di calcolo di Azure quando viene pubblicata una nuova versione dell'immagine e replicata nell'area del set di scalabilità. Se la nuova immagine non viene replicata nell'area in cui viene distribuita la scalabilità, le istanze del set di scalabilità non verranno aggiornate alla versione. La replica di immagini a livello di area consente di controllare l'implementazione della nuova immagine per i set di scalabilità.
  • La nuova versione dell'immagine non deve essere esclusa dalla versione per l'immagine della raccolta. Le versioni delle immagini escluse dalla versione dell'immagine della raccolta non vengono implementate nel set di scalabilità tramite l'aggiornamento automatico dell'immagine del sistema operativo.

Nota

L'attivazione dell'implementazione del primo aggiornamento dell'immagine dopo la prima configurazione del set di scalabilità per gli aggiornamenti automatici del sistema operativo può richiedere fino a 3 ore a causa di determinati fattori, ad esempio Windows di manutenzione o altre restrizioni. I clienti nell'immagine più recente potrebbero non ottenere un aggiornamento fino a quando non è disponibile una nuova immagine.

Configurare l'aggiornamento automatico dell'immagine del sistema operativo

Per configurare l'aggiornamento automatico dell'immagine del sistema operativo, verificare che nella definizione del modello del set di scalabilità la proprietà automaticOSUpgradePolicy.enableAutomaticOSUpgrade sia impostata su true.

Nota

La modalità criteri di aggiornamento e i criteri di aggiornamento automatico del sistema operativo sono impostazioni separate e controllano diversi aspetti del set di scalabilità. Quando vengono apportate modifiche al modello del set di scalabilità, i criteri mode di aggiornamento determineranno cosa accade alle istanze esistenti nel set di scalabilità. Tuttavia, i criteri di aggiornamento enableAutomaticOSUpgrade automatico del sistema operativo sono specifici dell'immagine del sistema operativo e tiene traccia delle modifiche apportate dall'autore delle immagini e determinano cosa accade quando è presente un aggiornamento dell'immagine.

Nota

Se enableAutomaticOSUpgrade è impostato su true, enableAutomaticUpdates viene impostato automaticamente su false e non può essere impostato su true.

REST API

L'esempio seguente descrive come impostare gli aggiornamenti automatici del sistema operativo in un modello del set di scalabilità:

PUT or PATCH on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet?api-version=2021-03-01`
{
  "properties": {
    "upgradePolicy": {
      "automaticOSUpgradePolicy": {
        "enableAutomaticOSUpgrade":  true
      }
    }
  }
}

Azure PowerShell

Usare il cmdlet New-AzVmss per configurare gli aggiornamenti automatici delle immagini del sistema operativo per il set di scalabilità durante il provisioning. L'esempio seguente configura gli aggiornamenti automatici per il set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

New-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Usare il cmdlet Update-AzVmss per configurare gli aggiornamenti automatici delle immagini del sistema operativo per il set di scalabilità esistente. L'esempio seguente configura gli aggiornamenti automatici per il set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

Update-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Interfaccia della riga di comando di Azure 2.0

Usare az vmss create per configurare gli aggiornamenti automatici delle immagini del sistema operativo per il set di scalabilità durante il provisioning. Usare l'interfaccia della riga di comando di Azure versione 2.0.47 o successiva. L'esempio seguente configura gli aggiornamenti automatici per il set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

az vmss create --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Usare az vmss update per configurare gli aggiornamenti automatici delle immagini del sistema operativo per il set di scalabilità esistente. Usare l'interfaccia della riga di comando di Azure versione 2.0.47 o successiva. L'esempio seguente configura gli aggiornamenti automatici per il set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

az vmss update --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Nota

Dopo aver configurato gli aggiornamenti automatici delle immagini del sistema operativo per il set di scalabilità, è anche necessario portare le macchine virtuali del set di scalabilità nel modello del set di scalabilità più recente se il set di scalabilità usa i criteri di aggiornamento "Manuale".

Modelli di Gestione risorse di Azure

L'esempio seguente descrive come impostare gli aggiornamenti automatici del sistema operativo in un modello di set di scalabilità tramite i modelli di Azure Resource Manager (modelli di Resource Manager):

"properties": {
   "upgradePolicy": {
     "mode": "Automatic",
     "RollingUpgradePolicy": {
         "BatchInstancePercent": 20,
         "MaxUnhealthyInstancePercent": 25,
         "MaxUnhealthyUpgradedInstancePercent": 25,
         "PauseTimeBetweenBatches": "PT0S"
     },
    "automaticOSUpgradePolicy": {
      "enableAutomaticOSUpgrade": true,
        "useRollingUpgradePolicy": true,
        "disableAutomaticRollback": false
    }
  },
  },
"imagePublisher": {
   "type": "string",
   "defaultValue": "MicrosoftWindowsServer"
 },
 "imageOffer": {
   "type": "string",
   "defaultValue": "WindowsServer"
 },
 "imageSku": {
   "type": "string",
   "defaultValue": "2022-datacenter"
 },
 "imageOSVersion": {
   "type": "string",
   "defaultValue": "latest"
 }

Bicep

L'esempio seguente descrive come impostare gli aggiornamenti automatici del sistema operativo in un modello di set di scalabilità tramite Bicep:

properties: {
    overprovision: overProvision
    upgradePolicy: {
      mode: 'Automatic'
      automaticOSUpgradePolicy: {
        enableAutomaticOSUpgrade: true
      }
    }
}

Uso dei probe di integrità dell'applicazione

Durante un aggiornamento del sistema operativo, le istanze di macchina virtuale in un set di scalabilità vengono aggiornate un batch alla volta. L'aggiornamento deve continuare solo se l'applicazione del cliente è integra nelle istanze di macchina virtuale aggiornate. È consigliabile che l'applicazione fornisca segnali di integrità al motore di aggiornamento del sistema operativo del set di scalabilità. Per impostazione predefinita, durante gli aggiornamenti del sistema operativo la piattaforma prende in considerazione lo stato di alimentazione della macchina virtuale e lo stato di provisioning dell'estensione per determinare se un'istanza di macchina virtuale è integra dopo un aggiornamento. Durante l'aggiornamento del sistema operativo di un'istanza di macchina virtuale, il disco del sistema operativo in un'istanza di macchina virtuale viene sostituito con un nuovo disco in base alla versione più recente dell'immagine. Una volta completato l'aggiornamento del sistema operativo, le estensioni configurate vengono eseguite in queste macchine virtuali. L'applicazione viene considerata integra solo dopo che è stato completato correttamente il provisioning di tutte le estensioni nell'istanza.

Un set di scalabilità può facoltativamente essere configurato con probe di integrità dell'applicazione per fornire alla piattaforma informazioni accurate sullo stato dell'applicazione. I probe di integrità delle applicazioni sono probe del servizio di bilanciamento del carico personalizzati usati come un segnale di integrità. L'applicazione in esecuzione in un'istanza di macchina virtuale del set di scalabilità può rispondere a richieste HTTP o TCP esterne per indicare se è integra. Per altre informazioni sul funzionamento dei probe di bilanciamento del carico personalizzati, vedere Informazioni sui probe di bilanciamento del carico. I probe di integrità dell'applicazione non sono supportati per i set di scalabilità di Service Fabric. Per i set di scalabilità non di Service Fabric sono richiesti probe di integrità dell'applicazione Load Balancer oppure l'estensione Integrità applicazione.

Se il set di scalabilità è configurato per l'uso di più gruppi di posizionamento, è necessario usare probe con un servizio di bilanciamento del carico standard.

Nota

È possibile usare solo un'origine di monitoraggio dell'integrità per un set di scalabilità di macchine virtuali, un'estensione di integrità dell'applicazione o un probe di integrità. Se sono abilitate entrambe le opzioni, è necessario rimuoverle prima di usare servizi di orchestrazione come Riparazioni istanza o Aggiornamenti automatici del sistema operativo.

Configurazione di un probe di bilanciamento del carico personalizzato come probe di integrità dell'applicazione in un set di scalabilità

Come procedura consigliata, creare un probe di bilanciamento del carico in modo esplicito per l'integrità del set di scalabilità. Può essere usato lo stesso endpoint per un probe HTTP o TCP esistente, ma un probe di integrità può richiedere un comportamento diverso da un probe di bilanciamento del carico tradizionale. Ad esempio, un probe di bilanciamento del carico tradizionale può restituire uno stato non integro se il carico sull'istanza è troppo elevato, mentre questo potrebbe non essere appropriato per determinare l'integrità dell'istanza durante un aggiornamento automatico del sistema operativo. Configurare il probe con un tasso di probing elevato, inferiore a due minuti.

È possibile fare riferimento al probe di bilanciamento del carico nell'impostazione networkProfile del set di scalabilità e il probe può essere associato a un servizio di bilanciamento del carico interno o pubblico, come segue:

"networkProfile": {
  "healthProbe" : {
    "id": "[concat(variables('lbId'), '/probes/', variables('sshProbeName'))]"
  },
  "networkInterfaceConfigurations":
  ...
}

Nota

Quando si usano gli aggiornamenti automatici del sistema operativo con Service Fabric, la nuova immagine del sistema operativo viene implementata in un dominio di aggiornamento alla volta per mantenere un'elevata disponibilità dei servizi in esecuzione in Service Fabric. Per usare gli aggiornamenti automatici del sistema operativo in Service Fabric, il tipo di nodo del cluster deve essere configurato per l'uso del livello di durabilità Silver o superiore. Per il livello di durabilità Bronze, l'aggiornamento automatico dell'immagine del sistema operativo è supportato solo per i tipi di nodo senza stato. Per altre informazioni sulle caratteristiche di durabilità dei cluster di Service Fabric, vedere questa documentazione.

Mantenere aggiornate le credenziali

Se il set di scalabilità usa credenziali per accedere a risorse esterne, ad esempio un'estensione di macchina virtuale configurata per l'uso di un token di firma di accesso condiviso per l'account di archiviazione, assicurarsi che le credenziali vengano aggiornate. Se le credenziali, inclusi i certificati e i token, sono scadute, l'aggiornamento avrà esito negativo e il primo batch di macchine virtuali verrà lasciato in uno stato di errore.

Le procedure consigliate per recuperare le macchine virtuali e abilitare di nuovo l'aggiornamento automatico del sistema operativo se si verifica un errore di autenticazione delle risorse sono:

  • Rigenerare il token (o qualsiasi altra credenziale) passato alle estensioni.
  • Verificare che le eventuali credenziali usate all'interno della macchina virtuale per comunicare con le entità esterne siano aggiornate.
  • Aggiornare le estensioni nel modello di set di scalabilità con eventuali nuovi token.
  • Distribuire il set di scalabilità aggiornato, che aggiornerà tutte le istanze di macchina virtuale, incluse quelle in errore.

Uso dell'estensione Integrità applicazione

L'estensione Integrità applicazione viene distribuita all'interno di un'istanza del set di scalabilità di macchine virtuali e segnala l'integrità della macchina virtuale dall'interno dell'istanza del set di scalabilità. È possibile configurare l'estensione per eseguire il probe su un endpoint dell'applicazione e aggiornare lo stato dell'applicazione in tale istanza. Questo stato dell'istanza viene verificato da Azure per determinare se un'istanza è idonea per le operazioni di aggiornamento.

Poiché l'estensione segnala l'integrità dall'interno di una macchina virtuale, può essere usata nelle situazioni in cui non è possibile usare probe esterni, ad esempio i probe di Integrità applicazione (che usano probe personalizzati di Azure Load Balancer).

Esistono diversi modi per distribuire l'estensione Integrità applicazione nei set di scalabilità, come descritto in dettaglio negli esempi in questo articolo.

Nota

È possibile usare solo un'origine di monitoraggio dell'integrità per un set di scalabilità di macchine virtuali, un'estensione di integrità dell'applicazione o un probe di integrità. Se sono abilitate entrambe le opzioni, è necessario rimuoverle prima di usare servizi di orchestrazione come Riparazioni istanza o Aggiornamenti automatici del sistema operativo.

Ottenere la cronologia degli aggiornamenti automatici dell'immagine del sistema operativo

È possibile controllare la cronologia dell'aggiornamento del sistema operativo più recente eseguito nel set di scalabilità con Azure PowerShell, l'interfaccia della riga di comando di Azure 2.0 o le API REST. È possibile ottenere la cronologia degli ultimi cinque tentativi di aggiornamento del sistema operativo negli ultimi due mesi.

REST API

L'esempio seguente usa l'API REST per controllare lo stato del set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

GET on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osUpgradeHistory?api-version=2021-03-01`

La chiamata GET restituisce proprietà simili all'output dell'esempio seguente:

{
	"value": [
		{
			"properties": {
        "runningStatus": {
          "code": "RollingForward",
          "startTime": "2018-07-24T17:46:06.1248429+00:00",
          "completedTime": "2018-04-21T12:29:25.0511245+00:00"
        },
        "progress": {
          "successfulInstanceCount": 16,
          "failedInstanceCount": 0,
          "inProgressInstanceCount": 4,
          "pendingInstanceCount": 0
        },
        "startedBy": "Platform",
        "targetImageReference": {
          "publisher": "MicrosoftWindowsServer",
          "offer": "WindowsServer",
          "sku": "2016-Datacenter",
          "version": "2016.127.20180613"
        },
        "rollbackInfo": {
          "successfullyRolledbackInstanceCount": 0,
          "failedRolledbackInstanceCount": 0
        }
      },
      "type": "Microsoft.Compute/virtualMachineScaleSets/rollingUpgrades",
      "location": "westeurope"
    }
  ]
}

Azure PowerShell

Usare il cmdlet Get-AzVmss per controllare la cronologia di aggiornamento del sistema operativo per il set di scalabilità. L'esempio seguente illustra in dettaglio come esaminare lo stato di aggiornamento del sistema operativo per un set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -OSUpgradeHistory

Interfaccia della riga di comando di Azure 2.0

Usare az vmss get-os-upgrade-history per controllare la cronologia di aggiornamento del sistema operativo per il set di scalabilità. Usare l'interfaccia della riga di comando di Azure versione 2.0.47 o successiva. L'esempio seguente illustra in dettaglio come esaminare lo stato di aggiornamento del sistema operativo per un set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

az vmss get-os-upgrade-history --resource-group myResourceGroup --name myScaleSet

Come ottenere la versione più recente di un'immagine del sistema operativo della piattaforma?

È possibile ottenere le versioni delle immagini disponibili per gli SKU supportati per l'aggiornamento automatico del sistema operativo usando gli esempi seguenti:

REST API

GET on `/subscriptions/subscription_id/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions?api-version=2021-03-01`

Azure PowerShell

Get-AzVmImage -Location "westus" -PublisherName "Canonical" -offer "0001-com-ubuntu-server-jammy" -sku "22_04-lts"

Interfaccia della riga di comando di Azure 2.0

az vm image list --location "westus" --publisher "Canonical" --offer "0001-com-ubuntu-server-jammy" --sku "22_04-lts" --all

Attivare manualmente gli aggiornamenti delle immagini del sistema operativo

Con l'aggiornamento automatico delle immagini del sistema operativo abilitato nel set di scalabilità, non è necessario attivare manualmente gli aggiornamenti delle immagini nel set di scalabilità. L'agente di orchestrazione dell'aggiornamento del sistema operativo applicherà automaticamente la versione più recente dell'immagine disponibile alle istanze del set di scalabilità senza alcun intervento manuale.

Per casi specifici in cui non si vuole attendere che l'agente di orchestrazione applichi l'immagine più recente, è possibile attivare manualmente un aggiornamento dell'immagine del sistema operativo usando gli esempi seguenti.

Nota

Il trigger manuale degli aggiornamenti delle immagini del sistema operativo non offre funzionalità di rollback automatico. Se un'istanza non ripristina l'integrità dopo un'operazione di aggiornamento, non è possibile ripristinare il disco del sistema operativo precedente.

REST API

Usare la chiamata all'API Avvia aggiornamento del sistema operativo per avviare un aggiornamento in sequenza per spostare tutte le istanze del set di scalabilità di macchine virtuali alla versione più recente del sistema operativo immagine disponibile. Le istanze che eseguono già la versione più recente del sistema operativo disponibile non sono interessate. L'esempio seguente illustra in dettaglio come avviare un aggiornamento in sequenza del sistema operativo in un set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

POST on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osRollingUpgrade?api-version=2021-03-01`

Azure PowerShell

Usare il cmdlet Start-AzVmssRollingOSUpgrade per controllare la cronologia di aggiornamento del sistema operativo per il set di scalabilità . L'esempio seguente illustra in dettaglio come avviare un aggiornamento in sequenza del sistema operativo in un set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

Start-AzVmssRollingOSUpgrade -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Interfaccia della riga di comando di Azure 2.0

Usare az vmss rolling-upgrade start per controllare la cronologia di aggiornamento del sistema operativo per il set di scalabilità. Usare l'interfaccia della riga di comando di Azure versione 2.0.47 o successiva. L'esempio seguente illustra in dettaglio come avviare un aggiornamento in sequenza del sistema operativo in un set di scalabilità denominato myScaleSet nel gruppo di risorse denominato myResourceGroup:

az vmss rolling-upgrade start --resource-group "myResourceGroup" --name "myScaleSet" --subscription "subscriptionId"

Analizzare e risolvere gli errori di aggiornamento automatico

La piattaforma può restituire errori nelle macchine virtuali durante l'esecuzione dell'aggiornamento automatico delle immagini con i criteri di aggiornamento in sequenza. La visualizzazione get instance di una macchina virtuale contiene il messaggio di errore dettagliato per analizzare e risolvere un errore. Gli aggiornamenti in sequenza - Ottieni più recenti possono fornire altri dettagli sulla configurazione e sullo stato dell'aggiornamento in sequenza. La cronologia dell'aggiornamento del sistema operativo fornisce informazioni dettagliate sull'ultima operazione di aggiornamento delle immagini nel set di scalabilità. Di seguito sono riportati gli errori più importanti che possono causare aggiornamenti in sequenza.

RollingUpgradeInProgressWithFailedUpgradedVMs

  • L'errore viene attivato per un errore della macchina virtuale.
  • Il messaggio di errore dettagliato indica se l'implementazione continuerà/sospendi in base alla soglia configurata.

MaxUnhealthyUpgradedInstancePercentExceededInRollingUpgrade

  • L'errore viene attivato quando la percentuale di macchine virtuali aggiornate supera la soglia massima consentita per le macchine virtuali non integre.
  • Il messaggio di errore dettagliato aggrega l'errore più comune che contribuisce alle macchine virtuali non integre. Vedere MaxUnhealthyUpgradedInstancePercent.

MaxUnhealthyInstancePercentExceededInRollingUpgrade

  • L'errore viene attivato quando la percentuale di macchine virtuali non integre supera la soglia massima consentita per le macchine virtuali non integre durante un aggiornamento.
  • Il messaggio di errore dettagliato visualizza la percentuale di non integrità corrente e la percentuale di macchina virtuale non integrabile configurata. Vedere maxUnhealthyInstancePercent.

MaxUnhealthyInstancePercentExceededBeforeRollingUpgrade

  • L'errore viene attivato quando la percentuale di macchine virtuali non integre supera la soglia massima consentita per le macchine virtuali non integre prima che venga eseguito un aggiornamento.
  • Il messaggio di errore dettagliato visualizza la percentuale di non integrità corrente e la percentuale di macchina virtuale non integrabile configurata. Vedere maxUnhealthyInstancePercent.

InternalExecutionError

  • L'errore viene attivato quando si verifica un errore non gestito, non formattato o imprevisto durante l'esecuzione.
  • Il messaggio di errore dettagliato visualizza la causa dell'errore.

RollingUpgradeTimeoutError

  • L'errore viene attivato al timeout del processo di aggiornamento in sequenza.
  • Il messaggio di errore dettagliato visualizza il timeout del sistema dopo il tentativo di aggiornamento.

Passaggi successivi