Esercitazione: Distribuire un contenitore Spot con Istanze di Azure Container usando l'interfaccia della riga di comando di Azure (anteprima)
I contenitori spot combinano la semplicità di ACI con il basso costo delle macchine virtuali spot, rendendo più semplice e conveniente per i clienti l'esecuzione di carichi di lavoro interrompibili in contenitori su larga scala. Usare Istanze di Azure Container per eseguire contenitori Spot serverless. Distribuire un'applicazione in un contenitore Spot su richiesta quando si vogliono eseguire carichi di lavoro in contenitori interrompibili in una capacità di Azure inutilizzata a basso costo e non è necessaria una piattaforma di orchestrazione dei contenitori completa, ad esempio servizio Azure Kubernetes.
In questa guida introduttiva si usa l'interfaccia della riga di comando di Azure per distribuire un contenitore helloworld usando contenitori Spot. Alcuni secondi dopo l'esecuzione di un singolo comando di distribuzione, è possibile passare ai log del contenitore:
- Questa guida introduttiva richiede la versione 2xxx successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un gruppo di risorse
Le Istanze di Azure Container, analogamente a tutte le risorse di Azure, devono essere distribuite in un gruppo di risorse. I gruppi di risorse consentono di organizzare e gestire le risorse di Azure correlate.
Creare prima di tutto un gruppo di risorse denominato myResourceGroup nella posizione westus con il comando az group create seguente:
az group create --name myResourceGroup --location westus
Creazione di un contenitore
Ora che si dispone di un gruppo di risorse, è possibile eseguire un contenitore Spot in Azure. Per creare un gruppo di contenitori Spot con l'interfaccia della riga di comando di Azure, specificare un nome del gruppo di risorse, un nome dell'istanza del contenitore, un'immagine del contenitore e una nuova proprietà denominata "priority" con valore "Spot" al comando az container create . In questo argomento di avvio rapido viene usata l'immagine mcr.microsoft.com/azuredocs/aci-helloworld
pubblica. In questa immagine è inclusa una piccola app Web scritta in Node.js che distribuisce una pagina HTML statica.
Non è possibile esporre i contenitori spot a Internet specificando una o più porte da aprire, un'etichetta del nome DNS o entrambe. In questa guida introduttiva si distribuisce un contenitore usando l'immagine helloworld senza un'etichetta del nome DNS. Non è raggiungibile pubblicamente. È possibile eseguire query sui log del contenitore per verificare che il contenitore sia in ascolto sulla porta predefinita 80.
Per avviare un'istanza di contenitore, eseguire un comando simile al seguente.
az container create --resource-group acispotdemo --name acispotclitest --image mcr.microsoft.com/azuredocs/aci-helloworld --priority spot
Entro pochi secondi si dovrebbe ricevere una risposta dall'interfaccia della riga di comando di Azure che indica che è stata completata la distribuzione. Controllarne lo stato con il comando az container show:
az container show --resource-group acispotdemo --name acispotclitest --query "{ProvisioningState:provisioningState}" --out table
Quando si esegue il comando, vengono visualizzati il nome di dominio completo (FQDN) del contenitore e il relativo lo stato di provisioning.
ContainerGroupName ProvisioningState
--------------------------------- -------------------
acispotclitest Succeeded
Se il contenitore ProvisioningState
è Succeeded, congratulazioni. È stata completata la distribuzione di un'applicazione in esecuzione in un contenitore Docker in Azure.
Effettuare il pull dei log del contenitore
Quando è necessario risolvere i problemi di un contenitore o dell'applicazione in esecuzione (o semplicemente visualizzarne l'output), iniziare visualizzando i log dell'istanza del contenitore.
Effettuare il pull dei log dell'istanza del contenitore con il comando az container logs:
az container logs --resource-group acispotdemo --name acispotclitest
L'output visualizza i log per il contenitore e dovrebbe mostrare l'output seguente
listening on port 80
Collegare i flussi di output
Oltre a visualizzare i log, è possibile collegare i flussi di errore e di output standard locali a quello del contenitore.
Per prima cosa, eseguire il comando az container attach per collegare la console locale ai flussi di output del contenitore:
az container attach --resource-group acispotdemo --name acispotclitest
Al termine, aggiornare il browser alcune volte per generare più output. Scollegare infine la console con Control+C
. L'output dovrebbe essere simile all'esempio seguente:
Container 'acispotclitest' is in state 'Running'...
Start streaming logs:
listening on port 80
Pulire le risorse
Quando il contenitore non è più necessario, rimuoverlo usando il comando az container delete:
az container delete --resource-group acispotdemo --name acispotclitest
Per verificare che il contenitore sia stato eliminato, eseguire il comando az container list:
az container list --resource-group acispotdemo --output table
Il contenitore acispotclitest non deve essere visualizzato nell'output del comando. Se nel gruppo di risorse non sono presenti altri contenitori, non viene visualizzato alcun output.
Se il gruppo di risorse acispotdemo e tutte le risorse che contiene, eliminarlo con il comando az group delete :
az group delete --name acispotdemo
Passaggi successivi
In questa esercitazione è stato creato un contenitore Spot in Istanze di Azure Container con un criterio di quota e rimozione predefinito usando l'interfaccia della riga di comando di Azure.