Eseguire la migrazione di distribuzioni e risorse a set di scalabilità di macchine virtuali nell'orchestrazione flessibile
Analogamente ai set di disponibilità, set di scalabilità di macchine virtuali consente di distribuire macchine virtuali in più domini di errore. set di scalabilità di macchine virtuali con orchestrazione flessibile consente di combinare la scalabilità di set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme con le garanzie di disponibilità a livello di area dei set di disponibilità. Questo articolo esamina le considerazioni sulla migrazione quando si passa alla modalità di orchestrazione flessibile per set di scalabilità di macchine virtuali.
Aggiornare i modelli e gli script dei set di disponibilità
Prima di tutto, è necessario creare un set di scalabilità di macchine virtuali senza un profilo di ridimensionamento automatico tramite l'interfaccia della riga di comando di Azure, Azure PowerShell o il modello di Resource Manager. portale di Azure consente solo la creazione di un set di scalabilità di macchine virtuali con un profilo di scalabilità automatica. Se non si vuole o non è necessario un profilo di scalabilità automatica e si vuole creare un set di scalabilità usando portale di Azure, è possibile impostare la capacità iniziale su 0.
È necessario specificare il numero di domini di errore per il set di scalabilità di macchine virtuali. Per le distribuzioni internazionali (non di zona), set di scalabilità di macchine virtuali offre le stesse garanzie di dominio di errore dei set di disponibilità. Tuttavia, è possibile aumentare fino a 1000 istanze. Per le distribuzioni di zona in cui si distribuiscono istanze in più zone di disponibilità, il numero di domini di errore deve essere impostato su 1.
I domini di aggiornamento sono stati deprecati in modalità orchestrazione flessibile. La maggior parte degli aggiornamenti della piattaforma con SKU per utilizzo generico viene eseguita con Live Migration e non richiede il riavvio dell'istanza. In caso di manutenzione della piattaforma, è necessario riavviare le istanze, gli aggiornamenti vengono applicati al dominio di errore per dominio di errore.
L'orchestrazione flessibile per set di scalabilità di macchine virtuali supporta anche la distribuzione di istanze in più zone di disponibilità. È consigliabile aggiornare le distribuzioni di macchine virtuali in modo che vengano distribuite tra più zone di disponibilità.
L'ultimo passaggio di questo processo consiste nel creare una macchina virtuale. Anziché specificare un set di disponibilità, specificare il set di scalabilità di macchine virtuali. Facoltativamente, è possibile specificare la zona di disponibilità o il dominio di errore in cui si vuole posizionare la macchina virtuale.
Eseguire la migrazione di macchine virtuali del set di disponibilità esistente
Attualmente non sono disponibili strumenti automatizzati per spostare direttamente le istanze esistenti in un set di disponibilità in un set di scalabilità di macchine virtuali. Esistono tuttavia diverse strategie che è possibile usare per eseguire la migrazione di istanze esistenti a un set di scalabilità flessibile:
Migrazione side-by-side o blu/verde
- Visualizzare nuove istanze di macchine virtuali del set di scalabilità con una configurazione simile nello stesso gruppo di risorse, rete virtuale, servizio di bilanciamento del carico e così via, come le macchine virtuali nella disponibilità
- Eseguire la migrazione di dati, traffico di rete e così via per usare le nuove istanze del set di scalabilità
- Deallocare o rimuovere le macchine virtuali del set di disponibilità originale, lasciando le macchine virtuali del set di scalabilità in esecuzione per l'applicazione
Sostituire le istanze di macchina virtuale
- Si notino i parametri da mantenere dalla macchina virtuale (nome, ID scheda di interfaccia di rete, ID sistema operativo e disco dati, impostazioni di configurazione della macchina virtuale, posizionamento del dominio di errore e così via)
- Eliminare la macchina virtuale del set di disponibilità. Le schede di interfaccia di rete e i dischi per la macchina virtuale non verranno eliminati
- Creare un nuovo oggetto macchina virtuale usando i parametri della macchina virtuale originale
- ID scheda di interfaccia di rete
- Dischi del sistema operativo e dei dati
- Posizionamento del dominio di errore
- Altre impostazioni della macchina virtuale
Aggiornare script e modelli di distribuzione dei set di scalabilità uniformi
Aggiornare i modelli e gli script di distribuzione uniform set di scalabilità di macchine virtuali per usare l'orchestrazione flessibile. Modificare gli elementi seguenti nei modelli per completare correttamente il processo.
- Rimuovi
LoadBalancerNATPool
(non valido per flex) - Rimuovere il parametro di overprovisioning (non valido per flex)
- Rimuovi
upgradePolicy
(non valido per flex, ancora) - Aggiornare la versione dell'API di calcolo alla versione 2021-03-01
- Aggiungere la modalità di orchestrazione
flexible
platformFaultDomainCount
ObbligatoriosinglePlacementGroup
=false obbligatorio- Aggiungere la versione dell'API di rete alla versione 2021-11-01 o successiva
- Impostare IP
configuration.properties.primary
su true (obbligatorio per le regole in uscita)
Eseguire la migrazione di set di scalabilità uniformi esistenti
Attualmente non sono disponibili strumenti automatizzati per spostare direttamente le istanze esistenti o aggiornare un set di scalabilità uniforme a un set di scalabilità di macchine virtuali flessibili. Di seguito è tuttavia illustrata una strategia che è possibile usare per eseguire la migrazione di istanze esistenti a un set di scalabilità flessibile:
Migrazione side-by-side o blu/verde
- Visualizzare il nuovo set di scalabilità in modalità di orchestrazione flessibile con una configurazione simile nello stesso gruppo di risorse, nella rete virtuale, nel servizio di bilanciamento del carico e così via, come il set di scalabilità originale in modalità di orchestrazione uniforme
- Eseguire la migrazione di dati, traffico di rete e così via per usare le nuove istanze del set di scalabilità
- Ridurre o rimuovere le macchine virtuali del set di scalabilità uniforme originale, lasciando le macchine virtuali del set di scalabilità in esecuzione per l'applicazione
Considerazioni su set di scalabilità flessibili
set di scalabilità di macchine virtuali con orchestrazione flessibile consente di combinare la scalabilità di set di scalabilità di macchine virtuali nell'orchestrazione uniforme con le garanzie di disponibilità a livello di area dei set di disponibilità. Di seguito sono riportate alcune considerazioni chiave quando si decide di usare la modalità di orchestrazione flessibile.
Creare connettività di rete scalabile
Il comportamento dell'accesso in uscita di rete varia a seconda di come si sceglie di creare macchine virtuali all'interno del set di scalabilità. Le istanze di macchina virtuale aggiunte manualmente hanno accesso alla connettività in uscita predefinita. Le istanze di macchina virtuale create in modo implicito non hanno accesso predefinito.
Per migliorare la sicurezza di rete predefinita, le istanze delle macchine virtuali create in modo implicito tramite il profilo di scalabilità automatica non hanno l'accesso in uscita predefinito. Per usare set di scalabilità di macchine virtuali con istanze di macchina virtuale create in modo implicito, l'accesso in uscita deve essere definito in modo esplicito tramite uno dei metodi seguenti:
- Per la maggior parte degli scenari, è consigliabile collegare il gateway NAT alla subnet.
- Per gli scenari con requisiti di sicurezza elevati o quando si usa Firewall di Azure o appliance virtuale di rete (NVA), è possibile specificare una route personalizzata definita dall'utente come hop successivo tramite il firewall.
- Le istanze si trovano nel pool back-end di uno SKU Standard di Azure Load Balancer.
- Collegare un indirizzo IP pubblico all'interfaccia di rete dell'istanza.
Gli scenari comuni che richiedono la connettività in uscita esplicita includono:
- L'attivazione di macchine virtuali Windows richiederà di avere definito la connettività in uscita dall'istanza della macchina virtuale all'attivazione di Windows Servizio di gestione delle chiavi (KMS). Per altre informazioni, vedere Risolvere i problemi di attivazione delle macchine virtuali Windows.
- Accesso agli account di archiviazione o a Key Vault. È anche possibile stabilire la connettività ai servizi di Azure tramite collegamento privato.
- Aggiornamenti di Windows.
- Accesso agli strumenti di gestione pacchetti Linux.
Per altre informazioni, vedere Accesso in uscita predefinito in Azure.
Con le macchine virtuali a istanza singola in cui si crea in modo esplicito la scheda di interfaccia di rete, viene fornito l'accesso in uscita predefinito. set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme ha anche la connettività in uscita predefinita.
Importante
Verificare di avere connettività di rete in uscita esplicita. Per altre informazioni, vedere Reti virtuali e macchine virtuali in Azure e assicurarsi di seguire le procedure consigliate di rete di Azure.
Assegnare un dominio di errore durante la creazione della macchina virtuale
È possibile scegliere il numero di domini di errore per il set di scalabilità di orchestrazione flessibile. Per impostazione predefinita, quando si aggiunge una macchina virtuale a un set di scalabilità flessibile, Azure distribuisce uniformemente le istanze tra domini di errore. Anche se è consigliabile consentire ad Azure di assegnare il dominio di errore, per scenari avanzati o di risoluzione dei problemi è possibile eseguire l'override di questo comportamento predefinito e specificare il dominio di errore in cui verrà atterrato l'istanza.
az vm create –vmss "myVMSS" –-platform_fault_domain 1
Denominazione dell'istanza
Quando si crea una macchina virtuale e la si aggiunge a un set di scalabilità flessibile, si ha il controllo completo sui nomi delle istanze all'interno delle regole delle convenzioni di denominazione di Azure. Quando le macchine virtuali vengono aggiunte automaticamente al set di scalabilità tramite scalabilità automatica, si specifica un prefisso e Azure aggiunge un numero univoco alla fine del nome.
Elencare le modifiche dell'API delle macchine virtuali dei set di scalabilità
I set di scalabilità di macchine virtuali consentono di elencare le istanze appartenenti al set di scalabilità. Con l'orchestrazione flessibile, il comando Elenca set di scalabilità di macchine virtuali fornisce un elenco di ID macchina virtuale dei set di scalabilità. È quindi possibile chiamare i comandi get dei set di scalabilità di macchine virtuali per ottenere altri dettagli sul funzionamento del set di scalabilità con l'istanza di macchina virtuale. Per ottenere i dettagli completi della macchina virtuale, usare i comandi standard GET VM o Azure Resource Graph.
Eseguire query su istanze per lo stato di alimentazione
Il metodo preferito consiste nell'usare Azure Resource Graph per eseguire query per tutte le macchine virtuali in un set di scalabilità di macchine virtuali. Azure Resource Graph offre funzionalità di query efficienti per le risorse di Azure su larga scala tra sottoscrizioni.
| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.virtualMachineScaleSet contains "demo"
| extend powerState = properties.extended.instanceView.powerState.code
| project name, resourceGroup, location, powerState
| order by resourceGroup desc, name desc
L'esecuzione di query sulle risorse con azure Resource Graph è un modo pratico ed efficiente per eseguire query sulle risorse di Azure e ridurre al minimo le chiamate API al provider di risorse. Azure Resource Graph è una cache coerente in cui le risorse nuove o aggiornate potrebbero non essere riflesse per un massimo di 60 secondi. È possibile:
- Elencare le macchine virtuali in un gruppo di risorse o una sottoscrizione.
- Usare l'opzione espandi per recuperare la visualizzazione dell'istanza (assegnazione di dominio di errore, stato di risparmio energia e provisioning) per tutte le macchine virtuali nella sottoscrizione.
- Usare l'API di macchine virtuali Get e i comandi per ottenere la visualizzazione del modello e dell'istanza per una singola istanza.
Operazioni batch di macchine virtuali dei set di scalabilità
Usare i comandi della macchina virtuale standard per avviare, arrestare, riavviare, eliminare istanze anziché le API vm del set di scalabilità di macchine virtuali. Le operazioni batch del set di scalabilità di macchine virtuali (avviare tutte, arrestare tutto, ricreare l'immagine e così via) non vengono usate con la modalità di orchestrazione flessibile.
Monitorare l'integrità delle applicazioni
Il monitoraggio dell'integrità delle applicazioni consente all'applicazione di fornire ad Azure un heartbeat per determinare se l'applicazione è integra o non integra. Azure può sostituire automaticamente le istanze di macchina virtuale non integre. Per le istanze del set di scalabilità flessibile, è necessario installare e configurare l'estensione integrità dell'applicazione nella macchina virtuale. Per le istanze del set di scalabilità uniforme, è possibile usare l'estensione integrità dell'applicazione o misurare l'integrità con un probe di integrità personalizzato di Azure Load Balancer.
Recuperare i dati di diagnostica di avvio
Usare le API e i comandi standard della macchina virtuale per recuperare i dati e gli screenshot della diagnostica di avvio dell'istanza. Le API e i comandi di diagnostica di avvio delle macchine virtuali dei set di scalabilità di macchine virtuali non vengono usati con le istanze della modalità di orchestrazione flessibile.
Estensioni delle macchine virtuali
Usare le estensioni destinate alle macchine virtuali standard, anziché le estensioni destinate alle istanze della modalità di orchestrazione uniforme.
Proteggere le istanze dall'eliminazione
set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non dispongono attualmente di opzioni di protezione dell'istanza. Se la scalabilità automatica è abilitata in un set di scalabilità di macchine virtuali, alcune macchine virtuali potrebbero essere a rischio di eliminazione durante il ridimensionamento in corso. Se si vuole proteggere determinate istanze di macchina virtuale dall'eliminazione, usare il blocco di Azure Resource Manager.