Aggiornare i contenitori in Istanze di Azure Container

Durante la normale operazione 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 o aggiornare una proprietà in un contenitore il cui arresto anomalo dell'applicazione.

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. Una volta terminato un gruppo di contenitori (è in uno stato Riuscito o Non riuscito) 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 quando si ridistribuisce. Alcune proprietà non supportano gli aggiornamenti.
  • Impostare altre proprietà con i valori specificati in precedenza. Se non si imposta un valore per una proprietà, viene ripristinato il valore predefinito.

Suggerimento

Un file YAML consente di gestire la configurazione della 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 vengono 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 di nome DNS, myapplication 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, viene eseguito il pull dei relativi livelli dell'immagine del contenitore da quelli memorizzati nella cache per la 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.

Limitazioni

  • 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 in esso presenti 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 lo stesso. Se distribuito nello stesso host sottostante, il gruppo di contenitori mantiene il proprio indirizzo IP. Sebbene raramente, esistono alcuni eventi interni di Azure che possono causare la ridistribuzione in un host diverso. Per attenuare questo problema, è consigliabile usare un'etichetta di nome DNS per le istanze del contenitore.
  • Non è possibile aggiornare i gruppi di contenitori terminati o eliminati. Dopo che un gruppo di contenitori viene arrestato (si trova nello stato Terminato ) o eliminato, il gruppo viene distribuito come nuovo.

Nota

Il comando di aggiornamento potrebbe non funzionare se il gruppo 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, 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
  • Criteri 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. Il pull di tutti i livelli dell'immagine viene eseguito dai dati aggiornati del registro, non da quelli 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 è menzionato più volte il gruppo di contenitori. Ogni contenitore di Istanze di Azure Container viene distribuito in un gruppo di contenitori, che può contenere più contenitori.

Gruppi di contenitori in Istanze di Azure Container

Distribuire un gruppo multi-contenitore

Arrestare o avviare manualmente i contenitori in Istanze di Azure Container