Condividi tramite


Avvio rapido: Creare un set di scalabilità di macchine virtuali Linux con un modello di ARM

Si applica a: ✔️ Macchine virtuali Linux ✔️ Set di scalabilità uniformi

Annotazioni

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 macchine virtuali nel set di scalabilità o definire regole per la scalabilità automatica in base all'utilizzo delle risorse, ad esempio CPU, domanda di memoria o traffico di rete. Un servizio di bilanciamento del carico di Azure distribuisce quindi il traffico alle istanze di macchina virtuale nel set di scalabilità. In questa guida introduttiva, creerai un set di scalabilità di macchine virtuali e distribuirai un'applicazione di esempio utilizzando un modello di Azure Resource Manager (ARM template).

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello usa la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.

I modelli ARM 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 aggiornare i set di scalabilità esistenti o crearne altri. È 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.

Pulsante per distribuire il modello di Resource Manager in 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:

Definire un set di scalabilità

Per creare una scalabilità con un modello, definire le risorse appropriate. Le parti principali del tipo di risorsa del set di scalabilità di macchine virtuali sono:

Proprietà Descrizione della proprietà Valore di esempio del modello
type Tipo di risorsa di Azure da creare Microsoft.Compute/virtualMachineScaleSets
nome Nome del set di scalabilità myScaleSet
ubicazione Posizione in cui creare il set di scalabilità East US
sku.name Dimensioni della macchina virtuale per ogni istanza del set di scalabilità Standard_A1
sku.capacity Numero di istanze di macchine virtuali da creare inizialmente 2
upgradePolicy.mode Modalità di aggiornamento dell'istanza di macchina virtuale quando si verificano modifiche Automatico
imageReference Piattaforma o immagine personalizzata da usare per le istanze della macchina virtuale Canonical Ubuntu Server 16.04-LTS
osProfile.computerNamePrefix Prefisso del nome per ogni istanza di macchina virtuale myvmss
osProfile.adminUsername Nome utente per ogni istanza di macchina virtuale azureuser
osProfile.adminPassword Password per ogni istanza di macchina virtuale P@ssw0rd!

Per personalizzare un modello di set di scalabilità, è possibile modificare le dimensioni della macchina virtuale o la capacità iniziale. Un'altra opzione consiste nell'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 forniti al portale di Azure in fase di esecuzione dell'estensione. Per applicare un'estensione al set di scalabilità, aggiungere la sezione extensionProfile all'esempio di risorsa precedente. Il profilo di estensione definisce in genere le proprietà seguenti:

  • Tipo di estensione
  • Editore di estensioni
  • Versione dell'estensione
  • Percorso della configurazione o dell'installazione di script
  • Comandi da eseguire nelle istanze della macchina virtuale

Il modello usa l'estensione script personalizzata per installare Bottle, un framework Web Python e un semplice server HTTP.

Due script sono definiti in installserver.sh fileUris - e workserver.py. Questi file vengono scaricati da GitHub, quindi commandToExecute viene eseguito bash installserver.sh per installare e configurare l'app.

Implementare il modello

È possibile distribuire il modello selezionando il pulsante Distribuisci in Azure seguente. Questo pulsante apre il portale di Azure, carica il modello completo e richiede alcuni parametri, ad esempio un nome del set di scalabilità, il numero di istanze e le credenziali di amministratore.

Pulsante per distribuire il modello di Resource Manager in Azure.

È anche possibile distribuire un modello di Resource Manager usando 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 alle richieste di specificare un nome del set di scalabilità, il numero di istanze e le credenziali di amministratore per le istanze della macchina virtuale. La creazione del set di scalabilità e delle risorse di supporto richiede alcuni minuti.

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 az network public-ip list come indicato di seguito:

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 della macchina virtuale, come illustrato nell'esempio seguente:

Pagina Web predefinita in NGINX

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, continuare con l'esercitazione su come creare e gestire set di scalabilità di macchine virtuali di Azure.