Guida introduttiva: Creare un set di scalabilità di macchine virtuali Linux con un modello di Resource Manager

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

Nota

L'articolo seguente è relativo a Uniform set di scalabilità di macchine virtuali. È 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 dell'set di scalabilità di macchine virtuali flessibile.

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 introduttiva si crea un set di scalabilità di macchine virtuali e si distribuisce un'applicazione di esempio con un modello di Azure Resource Manager (modello di Resource Manager).

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione 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.

Button to deploy the Resource Manager template to 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 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:

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.

Button to deploy the Resource Manager template to Azure.

È 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:

Default web page 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 azure set di scalabilità di macchine virtuali.