Aggiornare i contenitori in Istanze di Azure Container
Durante il normale funzionamento delle istanze del contenitore, potrebbe essere necessario aggiornare i contenitori in esecuzione in un gruppo di contenitori. Ad esempio, è possibile aggiornare una proprietà, ad esempio una versione dell'immagine, un nome DNS o una variabile di ambiente, oppure aggiornare una proprietà in un contenitore la cui applicazione si è arrestata in modo anomalo.
Aggiornare i contenitori in un gruppo di contenitori in esecuzione ridistribuendo un gruppo esistente con almeno una proprietà modificata. Quando si aggiorna un gruppo di contenitori, tutti i contenitori in esecuzione nel gruppo vengono riavviati sul posto, in genere nello stesso host contenitore sottostante.
Nota
Non è possibile aggiornare i gruppi di contenitori terminati o eliminati. Dopo che un gruppo di contenitori è terminato (è in uno stato Succeeded o Failed) o è stato eliminato, il gruppo deve essere distribuito come nuovo. Vedere altre limitazioni.
Aggiornare un gruppo di contenitori
Per aggiornare un gruppo di contenitori esistente:
- Eseguire il comando create (o usare il portale di Azure) e specificare il nome di un gruppo esistente
- Modificare o aggiungere almeno una proprietà del gruppo che supporta l'aggiornamento al momento della ridistribuzione. Alcune proprietà non supportano gli aggiornamenti.
- Impostare le altre proprietà con i valori specificati in precedenza. Se non si imposta un valore per una proprietà, viene ripristinato il valore predefinito.
Nota
Se si impostano tutte le proprietà sui valori specificati in precedenza e non si modificano o si aggiungono, il contenitore verrà riavviato in risposta al comando create.
Suggerimento
Un file YAML consente di gestire la configurazione di distribuzione di un gruppo di contenitori e fornisce un punto di partenza per distribuire un gruppo aggiornato. Se è stato usato un metodo diverso per creare il gruppo, è possibile esportare la configurazione in YAML usando az container export,
Esempio
L'esempio di interfaccia della riga di comando di Azure seguente aggiorna un gruppo di contenitori con una nuova etichetta del nome DNS. Poiché la proprietà dell'etichetta del nome DNS del gruppo è una che può essere aggiornata, il gruppo di contenitori viene ridistribuibile e i relativi contenitori sono stati riavviati.
Distribuzione iniziale con l'etichetta del nome DNS myapplication-staging:
# Create container group
az container create --resource-group myResourceGroup --name mycontainer \
--image nginx:alpine --dns-name-label myapplication-staging
Aggiornare il gruppo di contenitori con una nuova etichetta del nome DNS, un'applicazione e impostare le proprietà rimanenti con i valori usati in precedenza:
# Update DNS name label (restarts container), leave other properties unchanged
az container create --resource-group myResourceGroup --name mycontainer \
--image nginx:alpine --dns-name-label myapplication
Vantaggi dell'aggiornamento
Il vantaggio principale dell'aggiornamento di un gruppo di contenitori esistente è una distribuzione più veloce. Quando si ridistribuisce un gruppo di contenitori esistente, i livelli dell'immagine del contenitore vengono estratti dai livelli memorizzati nella cache dalla distribuzione precedente. Invece di eseguire il pull di tutti i livelli dell'immagine aggiornata dal registro come avviene con le nuove distribuzioni, viene eseguito il pull dei soli livelli modificati (se presenti).
Le applicazioni basate su immagini del contenitore di dimensioni maggiori, ad esempio Windows Server Core, possono ottenere un miglioramento significativo della velocità di distribuzione quando si esegue l'aggiornamento anziché eliminarle ed eseguire nuovamente la distribuzione.
Limiti
- Non tutte le proprietà di un gruppo di contenitori supportano gli aggiornamenti. Per modificare alcune proprietà di un gruppo di contenitori è necessario eliminare e ridistribuire il gruppo. Vedere Proprietà che richiedono l'eliminazione del contenitore.
- Quando si aggiorna un gruppo di contenitori, tutti i contenitori al suo interno vengono riavviati. È possibile eseguire un aggiornamento o un riavvio sul posto di un contenitore specifico in un gruppo multi-contenitore.
- L'indirizzo IP di un gruppo di contenitori viene in genere mantenuto tra gli aggiornamenti, ma non è garantito che rimanga invariato. Se distribuito nello stesso host sottostante, il gruppo di contenitori mantiene il proprio indirizzo IP. Anche se raramente, esistono alcuni eventi interni di Azure che possono causare la ridistribuzione in un host diverso. Per attenuare questo problema, è consigliabile usare un'etichetta del nome DNS per le istanze del contenitore.
- Non è possibile aggiornare i gruppi di contenitori terminati o eliminati. Una volta arrestato un gruppo di contenitori (nello stato Terminato ) o eliminato, il gruppo viene distribuito come nuovo.
Nota
Il comando di aggiornamento potrebbe non funzionare se il gruppo di Azure Container è collegato a un profilo di Archiviazione di Azure.
Proprietà che richiedono l'eliminazione del contenitore
Non tutte le proprietà del gruppo di contenitori possono essere aggiornate. Ad esempio, per modificare i criteri di riavvio di un contenitore, è prima necessario eliminare il gruppo di contenitori e quindi crearlo di nuovo.
Le modifiche apportate a queste proprietà richiedono l'eliminazione del gruppo di contenitori prima della ridistribuzione:
- Tipo di sistema operativo
- Risorse CPU, memoria o GPU
- Criterio di riavvio
- Profilo di rete
- Zona di disponibilità
Importante
I profili di rete sono stati ritirati a partire dalla versione dell'API 2021-07-01
. Se si usa questa o una versione più recente, ignorare i passaggi e le azioni correlati ai profili di rete.
Quando si elimina un gruppo di contenitori e lo si ricrea, questo non viene "ridistribuito", ma creato nuovo. Tutti i livelli di immagine vengono estratti dal Registro di sistema, non dai livelli memorizzati nella cache da una distribuzione precedente. L'indirizzo IP del contenitore può cambiare anche a causa della distribuzione in un altro host sottostante.
Passaggi successivi
In questo articolo vengono menzionati più volte i gruppi di contenitori. Ogni contenitore di Istanze di Azure Container viene distribuito in un gruppo di contenitori, che può contenere più contenitori. Gli articoli seguenti forniscono altre informazioni sui gruppi di contenitori: