Gruppi di contenitori in Istanze di Azure Container

La risorsa di primo livello in Istanze di Azure Container è il gruppo di contenitori. Questo articolo descrive le caratteristiche dei gruppi di contenitori e i tipi di scenari possibili.

Che cos'è un gruppo di contenitori?

Un gruppo di contenitori è una raccolta di contenitori che vengono pianificati nello stesso computer host I contenitori di un gruppo di contenitori condividono un ciclo di vita, le risorse, la rete locale e i volumi di archiviazione. È simile al concetto di pod in Kubernetes.

Il diagramma seguente mostra un esempio di un gruppo che include più contenitori:

Diagramma di gruppi di contenitori

Questo gruppo di contenitori di esempio:

  • È pianificato su un singolo computer host.
  • Ha un'etichetta del nome DNS assegnata.
  • Espone un singolo indirizzo IP pubblico, con una sola porta esposta.
  • È costituito da due contenitori. Un contenitore è in ascolto sulla porta 80, mentre l'altro è in ascolto sulla porta 5000.
  • Include due condivisioni file di Azure come punti di montaggio di volume e ogni contenitore monta una delle due condivisioni in locale.

Nota

I gruppi multi-contenitore supportano attualmente solo contenitori Linux. Per i contenitori di Windows, Istanze di Azure Container supporta solo la distribuzione di una singola istanza del contenitore. Mentre stiamo lavorando per portare tutte le funzionalità ai contenitori windows, è possibile trovare le differenze correnti della piattaforma nella panoramica del servizio.

Distribuzione

Ecco due modi comuni per distribuire un gruppo multi-contenitore: usare un modello di Resource Manager o un file YAML. Quando si distribuiscono istanze di contenitore, è consigliabile un modello di Resource Manager quando è necessario distribuire risorse aggiuntive del servizio di Azure(ad esempio, una condivisione di File di Azure). A causa della natura più concisa del formato YAML, la distribuzione con un file YAML è una scelta raccomandata quando la distribuzione include solo istanze di contenitore. Per informazioni dettagliate sulle proprietà che è possibile impostare, vedere la documentazione di riferimento sul modello di Resource Manager o la documentazione di riferimento di YAML.

Per mantenere la configurazione di un gruppo di contenitori, è possibile esportare la configurazione in un file YAML usando il comando az container export dell'interfaccia della riga di comando di Azure. L'esportazione consente di archiviare le configurazioni del gruppo di contenitori nel controllo della versione per "configurazione come codice". In alternativa, usare il file esportato come punto di partenza quando si sviluppa una nuova configurazione in YAML.

Allocazione delle risorse

Istanze di Azure Container alloca risorse come CPU, memoria e GPU (anteprima) a un gruppo multi-contenitore aggiungendo le richieste di risorse delle istanze nel gruppo. Se si crea un gruppo di contenitori con due istanze del contenitore, ognuna delle quali richiede 1 CPU, il gruppo di contenitori viene allocato a 2 CPU.

Utilizzo delle risorse in base alle istanze del contenitore

Ogni istanza del contenitore in un gruppo viene allocata alle risorse specificate nella richiesta di risorsa. Tuttavia, le risorse massime usate da un'istanza di contenitore in un gruppo potrebbero essere diverse se si configura la relativa proprietà facoltativa per il limite di risorse . Il limite di risorse di un'istanza del contenitore deve essere maggiore o uguale alla proprietà della richiesta di risorsa obbligatoria.

  • Se non si specifica un limite di risorse, l'utilizzo massimo delle risorse dell'istanza del contenitore corrisponde alla richiesta di risorsa.

  • Se si specifica un limite per un'istanza del contenitore, l'utilizzo massimo dell'istanza potrebbe essere maggiore della richiesta, fino al limite impostato. In modo corrispondente, l'utilizzo delle risorse da parte di altre istanze del contenitore nel gruppo potrebbe diminuire. Il limite massimo di risorse che è possibile impostare per un'istanza del contenitore è rappresentato dalle risorse totali allocate al gruppo.

Ad esempio, in un gruppo con due istanze di contenitore ognuna che richiede 1 CPU, uno dei contenitori potrebbe eseguire un carico di lavoro che richiede più CPU per l'esecuzione rispetto all'altra.

In questo scenario è possibile impostare un limite di risorse di un massimo di 2 CPU per l'istanza del contenitore. Questa configurazione consente all'istanza del contenitore di usare fino a 2 CPU, se disponibili.

Nota

Una quantità ridotta delle risorse del gruppo di contenitori viene usata dalla struttura sottostante del servizio. I contenitori potranno accedere alla maggior parte delle risorse ma non a tutte le risorse allocate al gruppo. Per questo motivo è consigliabile pianificare un piccolo buffer di risorse quando si richiedono risorse per i contenitori nel gruppo.

Allocazione minima e massima

  • Allocare almeno 1 CPU e 1 GB di memoria a un gruppo di contenitori. È possibile effettuare il provisioning di singole istanze di contenitore all'interno di un gruppo con meno di 1 CPU e 1 GB di memoria.

  • Per le risorse massime in un gruppo di contenitori, vedere la disponibilità delle risorse per Istanze di Azure Container nell'area di distribuzione.

Rete

I gruppi di contenitori possono condividere un indirizzo IP esterno, una o più porte sull'indirizzo IP e un'etichetta DNS con un nome di dominio completo (FQDN). Per consentire a client esterni di raggiungere un contenitore all'interno del gruppo, è necessario esporre la porta sull'indirizzo IP e dal contenitore. L'indirizzo IP e il nome di dominio completo di un gruppo di contenitori vengono rilasciati quando il gruppo di contenitori viene eliminato.

All'interno di un gruppo di contenitori, le istanze del contenitore possono raggiungere tra loro tramite localhost su qualsiasi porta, anche se tali porte non vengono esposte esternamente nell'indirizzo IP del gruppo o dal contenitore.

Distribuire facoltativamente i gruppi di contenitori in una rete virtuale di Azure per consentire ai contenitori di comunicare in modo sicuro con altre risorse nella rete virtuale.

Archiviazione

È possibile impostare il montaggio di volumi esterni all'interno di un gruppo di contenitori I volumi supportati includono:

ed eseguire il mapping di tali volumi in percorsi specifici all'interno dei singoli contenitori di un gruppo.

Scenari comuni

I gruppi di più contenitori sono utili nei casi in cui si vuole dividere una singola attività funzionale in un numero ridotto di immagini del contenitore. Queste immagini possono essere distribuite da team diversi e hanno requisiti separati in termini di risorse.

Un esempio di utilizzo può includere gli elementi seguenti:

  • Un contenitore che serve un'applicazione Web e un altro che esegue il pull del contenuto più recente dal controllo del codice sorgente.
  • Un contenitore di applicazione e un contenitore di registrazione. Il contenitore di registrazione raccoglie l'output dei log e delle metriche generato dall'applicazione principale e lo scrive in una risorsa di archiviazione a lungo termine.
  • Un contenitore di applicazione e un contenitore di monitoraggio. Il contenitore di monitoraggio invia periodicamente una richiesta all'applicazione per verificare che sia in esecuzione e risponda correttamente e genera un avviso nel caso in cui la verifica abbia esito negativo.
  • Un contenitore front-end e un contenitore back-end. Il front-end potrebbe servire un'applicazione Web e il back-end eseguire un servizio per recuperare i dati.

Passaggi successivi

Informazioni su come distribuire un gruppo con più contenitori con un modello di Azure Resource Manager.