Aggiornamento automatico delle estensioni per le macchine virtuali e i set di scalabilità in Azure
L'aggiornamento automatico delle estensioni è disponibile per macchine virtuali di Azure e set di scalabilità di macchine virtuali di Azure. Quando l'aggiornamento automatico delle estensioni è abilitato in una macchina virtuale (VM) o in un set di scalabilità, l'estensione viene aggiornata automaticamente ogni volta che l'editore dell'estensione rilascia una nuova versione per tale estensione.
L'aggiornamento automatico delle estensioni include le funzionalità seguenti:
- Sono supportate macchine virtuali di Azure e set di scalabilità di macchine virtuali.
- Gli aggiornamenti vengono applicati in un modello di distribuzione incentrato sulla disponibilità.
- Per un set di scalabilità di macchine virtuali, in un singolo batch non viene eseguito l'aggiornamento di più del 20% delle macchine virtuali del set di scalabilità. La dimensione minima del batch è una macchina virtuale.
- Tutte le dimensioni delle macchine virtuali e le estensioni Windows e Linux sono compatibili.
- Gli aggiornamenti automatici sono facoltativi in qualsiasi momento.
- Sono abilitati set di scalabilità di macchine virtuali di qualsiasi dimensione.
- Ogni estensione supportata viene registrata singolarmente. È possibile scegliere le estensioni da aggiornare automaticamente.
- Sono supportate tutte le aree del cloud pubblico.
Come funziona l'aggiornamento automatico delle estensioni?
Il processo di aggiornamento dell'estensione sostituisce la versione dell'estensione esistente in una macchina virtuale ogni volta che il server di pubblicazione dell'estensione pubblica una nuova versione della stessa estensione. L'integrità della macchina virtuale viene monitorata dopo l'installazione della nuova estensione. Se la macchina virtuale non è in uno stato integro entro cinque minuti dal completamento dell'aggiornamento, viene eseguito il rollback della versione dell'estensione alla versione precedente.
Viene eseguito un nuovo tentativo automatico di aggiornamento dell'estensione non riuscita. Ogni pochi giorni viene eseguito automaticamente un nuovo tentativo senza l'intervento dell'utente.
Aggiornamenti basati sulla disponibilità
Il modello basato sulla disponibilità per gli aggiornamenti orchestrati della piattaforma garantisce che le configurazioni di disponibilità in Azure siano rispettate in più livelli di disponibilità.
Per un gruppo di macchine virtuali in fase di aggiornamento, la piattaforma Azure orchestra gli aggiornamenti tra aree, all'interno di un'area e all'interno di un set.
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ò includere una o più aree e un aggiornamento si sposta da una fase all'altra solo se le macchine virtuali idonee nella fase precedente sono state aggiornate correttamente.
- Le aree geografiche abbinate non vengono aggiornate contemporaneamente e non possono trovarsi nella stessa fase a livello di area.
- L'esito positivo di un aggiornamento viene misurato monitorando l'integrità di una macchina virtuale dopo l'aggiornamento. L'integrità delle macchine virtuali viene monitorata tramite gli indicatori di integrità della piattaforma per la macchina virtuale. Per i set di scalabilità di macchine virtuali, l'integrità della macchina virtuale viene rilevata tramite probe di integrità dell'applicazione o l’Estensione di integrità dell'applicazione, se è applicata al set di scalabilità.
All'interno di un'area
- Le macchine virtuali in zone di disponibilità diverse non vengono aggiornate simultaneamente con lo stesso aggiornamento.
- Le singole macchine virtuali che non fanno parte di un set di disponibilità vengono raggruppate in batch per evitare aggiornamenti simultanei per tutte le macchine virtuali in una sottoscrizione.
All'interno di un set
- Tutte le macchine virtuali in un set di disponibilità o un set di scalabilità comuni non vengono aggiornate contemporaneamente.
- Le macchine virtuali in un set di disponibilità comune vengono aggiornate entro i limiti del dominio di aggiornamento. Le macchine virtuali in più domini di aggiornamento non vengono aggiornate contemporaneamente.
- Le macchine virtuali in un set di scalabilità di macchine virtuali comuni vengono raggruppate in batch e aggiornate entro i limiti del dominio di aggiornamento. I criteri di aggiornamento definiti nel set di scalabilità vengono rispettati durante l'aggiornamento. Ogni gruppo viene aggiornato usando una strategia di aggiornamento in sequenza.
Processo di aggiornamento per i set di scalabilità di macchine virtuali
- Prima di iniziare il processo di aggiornamento, l'agente di orchestrazione si assicura che non più del 20% delle macchine virtuali nell'intero set di scala non sia integro (per qualsiasi motivo).
- L'agente di orchestrazione dell’aggiornamento identifica il batch di istanze della macchina virtuale da aggiornare. Un batch di aggiornamento può avere un massimo del 20% del numero totale di macchine virtuali, soggetto a una dimensione minima del batch di una macchina virtuale. L'agente di orchestrazione considera la definizione dei criteri di aggiornamento e delle zone di disponibilità mentre viene identificato il batch.
- Dopo l'aggiornamento, l'integrità della macchina virtuale viene sempre monitorata prima di passare al batch successivo. Per i set di scalabilità con probe di integrità dell'applicazione o estensione di integrità dell'applicazione configurati, viene monitorata anche l'integrità dell'applicazione. L'aggiornamento attende fino a cinque minuti (o la configurazione del probe di integrità definita) affinché la macchina virtuale diventi integra prima di aggiornare il batch successivo. Se una macchina virtuale non ripristina l'integrità dopo un aggiornamento, per impostazione predefinita viene reinstallata la versione precedente dell'estensione nella macchina virtuale.
- L'agente di orchestrazione dell'aggiornamento tiene anche traccia della percentuale di macchine virtuali che diventano non integre dopo un aggiornamento. L'aggiornamento viene interrotto se più del 20% delle istanze aggiornate diventa non integro durante il processo di aggiornamento.
Questo processo continua fino al completamento dell'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, altre attività di manutenzione pianificate o meno potrebbero influire sull'integrità delle macchine virtuali 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.
Estensioni supportate
L'aggiornamento automatico dell'estensione supporta le estensioni seguenti (e altre estensioni vengono aggiunte periodicamente):
- Estensione del ruolo di lavoro ibrido per runbook di Automazione di Azure: Linux e Windows
- Dependency Agent: Linux e Windows
- Estensione di integrità dell'applicazione: Linux e Windows
- Estensione di attestazione guest: Linux e Windows
- Estensione di configurazione guest: Linux e Windows
- Insieme di credenziali chiave di Azure: Linux e Windows
- Agente di Monitoraggio di Azure
- Agente di Log Analytics per Linux
- Estensione Diagnostica di Azure per Linux
- Azure Service Fabric: Linux
Abilitare l'aggiornamento automatico delle estensioni
Per abilitare l'aggiornamento automatico dell'estensione per un'estensione, è necessario assicurarsi che la proprietà enableAutomaticUpgrade
sia impostata su true
e aggiunta singolarmente a ogni definizione di estensione.
Usare il portale di Azure
Nel portale di Azure usare il riquadro Estensione per abilitare l'aggiornamento automatico delle estensioni nelle macchine virtuali esistenti e nei set di scalabilità di macchine virtuali.
Passare al riquadro Macchine virtuali o Set di scalabilità di macchine virtuali e selezionare il nome della risorsa.
In Impostazioni, passare al riquadro Estensioni e applicazioni, che mostra tutte le estensioni installate nella risorsa. La colonna Stato aggiornamento automatico mostra se l'aggiornamento automatico dell'estensione è abilitato, disabilitato o non supportato.
Selezionare il nome dell'estensione per aprire il riquadro dei dettagli Estensioni.
Selezionare Abilita aggiornamento automatico per abilitare l'aggiornamento automatico dell'estensione. Usare questo pulsante per disabilitare un aggiornamento automatico, se necessario.
Per le macchine virtuali
Per abilitare l'aggiornamento automatico dell'estensione per un'estensione (in questo esempio l'estensione Dependency Agent) in una macchina virtuale di Azure, usare la chiamata seguente:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{
"name": "extensionName",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "<location>",
"properties": {
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
"type": "DependencyAgentWindows",
"typeHandlerVersion": "9.5"
}
}
Per i set di scalabilità di macchine virtuali
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
"location": "<location>",
"properties": {
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "<extensionName>",
"properties": {
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
"type": "DependencyAgentWindows",
"typeHandlerVersion": "9.5"
}
}
]
}
}
}
}
Nota
Queste operazioni impostano la proprietà enableAutomaticUpgrade
su true
nella risorsa del set di scalabilità di macchine virtuali, ma non nelle macchine virtuali sottostanti.
Se il set di scalabilità di macchine virtuali definisce la modalità di aggiornamento automatico o in sequenza nel file upgradeProfile, il set di scalabilità di macchine virtuali propaga automaticamente la modifica a ogni macchina virtuale sottostante.
Se il set di scalabilità di macchine virtuali definisce la modalità manuale in upgradeProfile
, è anche necessario aggiornare manualmente ogni istanza e propagare la modifica a ogni macchina virtuale sottostante.
Aggiornamenti delle estensioni con più estensioni
Una macchina virtuale o un set di scalabilità di macchine virtuali può disporre di più estensioni con l'aggiornamento automatico delle estensioni abilitato. Lo stesso set di scalabilità o macchina virtuale può disporre anche di altre estensioni senza l'aggiornamento automatico delle estensioni abilitato.
Se sono disponibili più aggiornamenti dell'estensione per una macchina virtuale, potrebbero essere raggruppati in batch, ma ogni aggiornamento viene applicato singolarmente in una macchina virtuale. Se si verifica un errore in un'estensione, tale errore non influisce sulle altre estensioni su cui potrebbe essere in corso l’aggiornamento. Ad esempio, se l’aggiornamento è pianificato per due estensioni e il primo aggiornamento dell'estensione ha esito negativo, la seconda estensione viene comunque aggiornata.
È possibile applicare gli aggiornamenti automatici delle estensioni anche quando una macchina virtuale o un set di scalabilità di macchine virtuali dispone di più estensioni configurate con la sequenziazione delle estensioni. La sequenziazione delle estensioni è per la prima distribuzione della macchina virtuale. Eventuali aggiornamenti dell'estensione futuri in un'estensione vengono applicati in modo indipendente.
Differenza tra EnableAutomaticUpgrade e AutoUpgradeMinorVersion
AutoUpgradeMinorVersion
:- Questa proprietà viene usata durante la creazione e l’aggiornamento della macchina virtuale con una nuova configurazione.
- Se impostata su
true
, garantisce che la versione secondaria più recente dell'estensione venga installata automaticamente nella macchina virtuale. - Esegue l'override di
TypeHandlerVersion
con la versione secondaria stabile più recente disponibile. - Quando si aggiorna la configurazione della macchina virtuale, se è disponibile una nuova versione secondaria, viene considerata una modifica della configurazione. L'estensione viene reinstallata con la versione secondaria più recente.
- In questo modo si mantengono aggiornate le macchine virtuali appena create con la versione più recente dell'estensione secondaria stabile.
- Se si desidera impostare manualmente l'estensione su una versione specifica, impostare questa proprietà su
false
.
EnableAutomaticUpgrade
:- Questa proprietà influisce sulle macchine virtuali esistenti.
- Non influisce sulla versione installata durante la creazione della macchina virtuale.
- Dopo la creazione della macchina virtuale, se la macchina virtuale non esegue la versione secondaria più recente dell'estensione, abilitare questa proprietà per attivare un aggiornamento automatico.
- Gli aggiornamenti non causano il riavvio della macchina virtuale e vengono implementati in modo sicuro. Viene eseguito immediatamente il rollback degli aggiornamenti non riusciti per garantire disponibilità e affidabilità elevate del servizio.
- Le macchine virtuali esistenti rimangono sicure e aggiornate tramite l’aggiornamento automatico alla versione secondaria più recente.
È consigliabile abilitare entrambe le proprietà per contribuire a mantenere tutte le macchine virtuali sicure e aggiornate.
Gli aggiornamenti alle versioni principali dell'estensione non vengono mai eseguiti automaticamente da entrambe le proprietà perché potrebbero generare modifiche che causano un’interruzione. È necessario impostare manualmente TypeHandlerVersion
su una versione principale e aggiornare manualmente ogni macchina virtuale esistente alla versione principale più recente.