Guida introduttiva: Creare un set di scalabilità di macchine virtuali Linux con un modello di Resource Manager
Si applica a: ✔️ macchine virtuali Linux ✔️ set di scalabilità uniformi
Nota
L'articolo seguente è relativo ai set di scalabilità di macchine virtuali uniformi. È consigliabile usare set di scalabilità di macchine virtuali flessibili per i nuovi carichi di lavoro. Altre informazioni su questa nuova modalità di orchestrazione sono disponibili nella Panoramica dei set di scalabilità di macchine virtuali flessibili.
Un set di scalabilità di macchine virtuali consente di distribuire e gestire un set di macchine virtuali con scalabilità automatica. È possibile ridimensionare manualmente il numero di VM nel set di scalabilità o definire regole di scalabilità automatica in base all'uso delle risorse, ad esempio la CPU, alla richiesta di memoria o al traffico di rete. Un servizio Azure Load Balancer distribuisce quindi il traffico alle istanze di macchina virtuale nel set di scalabilità. In questa guida di avvio rapido si crea un set di scalabilità di macchine virtuali e si distribuisce un'applicazione di esempio con un modello di Azure Resource Manager.
Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.
I modelli di Azure Resource Manager consentono di distribuire gruppi di risorse correlate. In un singolo modello è possibile creare il set di scalabilità di macchine virtuali, installare le applicazioni e configurare le regole di scalabilità automatica. Con l'uso di variabili e parametri, questo modello può essere riutilizzato per creare altri set di scalabilità o aggiornare i set esistenti. È possibile distribuire i modelli tramite il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell oppure dalle pipeline di integrazione continua/distribuzione continua (CI/CD).
Se l'ambiente soddisfa i prerequisiti e si ha familiarità con l'uso dei modelli di Resource Manager, selezionare il pulsante Distribuisci in Azure. Il modello verrà aperto nel portale di Azure.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Rivedere il modello
Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.
Nel modello sono definite queste risorse:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/publicIPAddresses
- Microsoft.Network/loadBalancers
- Microsoft.Compute/virtualMachineScaleSets
- Microsoft.Insights/autoscaleSettings
Definire un set di scalabilità
Per creare un set di scalabilità con un modello, definire le risorse appropriate. Le parti principali del tipo di risorsa del set di scalabilità di macchine virtuali sono le seguenti:
Proprietà | Descrizione della proprietà | Valore di esempio del modello |
---|---|---|
type | Tipo di risorsa di Azure da creare | Microsoft.Compute/virtualMachineScaleSets |
name | Nome del set di scalabilità | myScaleSet |
posizione | Posizione in cui creare il set di scalabilità | Stati Uniti orientali |
sku.name | Dimensioni delle VM per ogni istanza del set di scalabilità | Standard_A1 |
sku.capacity | Numero di istanze di macchina virtuale da creare inizialmente | 2 |
upgradePolicy.mode | Modalità di aggiornamento dell'istanza di macchina virtuale in caso di modifiche | Automatico |
imageReference | Piattaforma o immagine personalizzata da usare per le istanze delle macchine virtuali | Canonical Ubuntu Server 16.04-LTS |
osProfile.computerNamePrefix | Prefisso del nome per ogni istanza di macchina virtuale | myvmss |
osProfile.adminUsername | Nome utente di ogni istanza di macchina virtuale | azureuser |
osProfile.adminPassword | Password di ogni istanza di macchina virtuale | P@ssw0rd! |
Per personalizzare un modello di set di scalabilità, è possibile modificare le dimensioni o la capacità iniziale delle macchine virtuali. In alternativa, è possibile usare una piattaforma diversa o un'immagine personalizzata.
Aggiungere un'applicazione di esempio
Per testare il set di scalabilità, installare un'applicazione Web di base. Quando si distribuisce un set di scalabilità, le estensioni di VM possono fornire attività di configurazione e automazione post-distribuzione, ad esempio l'installazione di un'app. Gli script possono essere scaricati dall'archiviazione di Azure o da GitHub oppure possono essere forniti al portale di Azure durante il runtime dell'estensione. Per applicare un'estensione al set di scalabilità, si aggiunge la sezione extensionProfile all'esempio di risorsa precedente. Il profilo di estensione definisce in genere le proprietà seguenti:
- Tipo di estensione
- Server di pubblicazione dell'estensione
- Versione dell'estensione
- Percorso degli script di configurazione o installazione
- Comandi da eseguire nelle istanze di macchina virtuale
Il modello usa l'estensione di script personalizzati per installare Bottle, un framework Web Python, e un semplice server HTTP.
Sono definiti due script in fileUris - installserver.sh e workserver.py. Questi file vengono scaricati da GitHub, quindi commandToExecute esegue bash installserver.sh
per installare e configurare l'app.
Distribuire il modello
Per distribuire il modello, selezionare il pulsante Distribuisci in Azure seguente. Questo pulsante apre il portale di Azure, carica il modello completo e richiede alcuni parametri quali il nome del set di scalabilità, il numero di istanze e le credenziali di amministratore.
È possibile distribuire un modello di Resource Manager anche con l'interfaccia della riga di comando di Azure:
# Create a resource group
az group create --name myResourceGroup --location EastUS
# Deploy template into resource group
az deployment group create \
--resource-group myResourceGroup \
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json
Rispondere ai prompt per l'inserimento del nome del set di scalabilità, del numero di istanze e delle credenziali di amministratore per le istanze di macchina virtuale. Sono necessari alcuni minuti per creare il set di scalabilità e le risorse di supporto.
Convalidare la distribuzione
Per vedere il set di scalabilità in azione, accedere all'applicazione Web di esempio in un Web browser. Ottenere l'indirizzo IP pubblico del servizio di bilanciamento del carico con il comando az network public-ip list come segue:
az network public-ip list \
--resource-group myResourceGroup \
--query [*].ipAddress -o tsv
Immettere l'indirizzo IP pubblico del servizio di bilanciamento del carico in un Web browser nel formato http://publicIpAddress:9000/do_work. Il servizio di bilanciamento del carico distribuisce il traffico a una delle istanze di macchina virtuale, come illustrato nell'esempio seguente:
Pulire le risorse
Quando il gruppo di risorse, il set di scalabilità e tutte le risorse correlate non sono più necessari, è possibile usare il comando az group delete per rimuoverli, come segue. Il parametro --no-wait
restituisce il controllo al prompt senza attendere il completamento dell'operazione. Il parametro --yes
conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.
az group delete --name myResourceGroup --yes --no-wait
Passaggi successivi
In questa guida di avvio rapido è stato creato un set di scalabilità Linux con un modello di Azure Resource Manager ed è stata usata l'estensione di script personalizzati per installare un server Web Python di base nelle istanze di VM. Per altre informazioni, passare all'esercitazione su come creare e gestire i set di scalabilità di macchine virtuali di Azure.