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 in un gruppo di contenitori condividono un ciclo di vita, le risorse, la rete locale e i volumi di archiviazione. Il concetto è simile a quello di pod in Kubernetes.
Il diagramma seguente mostra un esempio di un gruppo che include più contenitori:
Questo gruppo di contenitori di esempio:
- Viene pianificato in un singolo computer host.
- Ha un'etichetta di nome DNS assegnata.
- Espone un singolo indirizzo IP pubblico, con una porta esposta.
- È costituito da due contenitori. Un contenitore resta in ascolto sulla porta 80, mentre l'altro sulla porta 5000.
- Include due condivisioni file di Azure come montaggi di volumi e ogni contenitore monta in locale una delle condivisioni.
Nota
I gruppi multi-contenitore supportano attualmente solo contenitori Linux. Per i contenitori Windows, Istanze di Azure Container supporta solo la distribuzione di una singola istanza di contenitore. Microsoft si impegna per rendere disponibili tutte le funzionalità anche per i contenitori Windows, ma nel frattempo è possibile trovare le differenze correnti della piattaforma nel servizio Panoramica.
Distribuzione
Ecco due modi comuni per distribuire un gruppo multi-contenitore: usare un modello di Resource Manager o un file YAML. Un modello di Resource Manager è consigliato quando è necessario distribuire altre risorse del servizio di Azure (ad esempio, una condivisione File di Azure) al momento della distribuzione delle istanze di contenitore. 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 Informazioni di riferimento per il modello di Resource Manager o Informazioni di riferimento YAML.
Per mantenere la configurazione di un gruppo di contenitori, è possibile esportare la configurazione in un file YAML usando il comando dell'interfaccia della riga di comando di Azure az container export. L'esportazione consente di archiviare le configurazioni dei gruppi di contenitori nel controllo della versione per la "configurazione come codice". In alternativa, usare il file esportato come punto di partenza per lo sviluppo di una nuova configurazione in YAML.
Allocazione delle risorse
Istanze di Azure Container assegna risorse come CPU, memoria e facoltativamente GPU (anteprima) a un gruppo multi-contenitore aggiungendo le richieste di risorse delle istanze nel gruppo. Prendendo ad esempio le risorse della CPU, se si crea un gruppo di contenitori con due istanze di contenitore, ognuna delle quali richiede una CPU, al gruppo di contenitori vengono allocate due CPU.
Utilizzo delle risorse da parte di istanze di contenitore
Ogni istanza del contenitore in un gruppo viene assegna alle risorse specificate nella richiesta di risorsa. Tuttavia, le risorse massime usate da un'istanza di contenitore in un gruppo possono essere diverse se si configura la relativa proprietà facoltativa Limite di risorse. Il limite di risorse di un'istanza del contenitore deve essere maggiore o uguale alla proprietà obbligatoria richiesta di risorse.
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. Di conseguenza, l'utilizzo delle risorse da parte delle 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 assegnate al gruppo.
Ad esempio, in un gruppo con due istanze di contenitore che richiedono ciascuna una CPU, uno dei contenitori potrebbe eseguire un carico di lavoro che richiede più CPU da eseguire rispetto all'altro.
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 utilizzare 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.
Assegnazione minima e massima
Assegnare un minimo di 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 una 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 ai 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 dei contenitori possono raggiungersi l'un l'altra tramite localhost su qualsiasi porta, anche se queste porte non vengono esposte esternamente sull'indirizzo IP del gruppo o dal contenitore.
Facoltativamente, distribuire gruppi di contenitori in una Rete virtuale di Azure per consentire ai contenitori di comunicare in modo sicuro con altre risorse nella rete virtuale.
Storage
È 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 multi-contenitore sono utili nei casi in cui si vuole dividere una singola attività funzionale in alcune immagini del contenitore. Queste immagini possono avere requisiti di risorse separati e diversi team possono distribuirli.
Un utilizzo di esempio potrebbe includere:
- Un contenitore che serve un'applicazione Web e un contenitore che estrae il contenuto più recente dal controllo del codice sorgente.
- Un contenitore dell'applicazione e un contenitore di registrazione. Il contenitore di registrazione raccoglie i log e le metriche prodotti dall'applicazione principale e li scrive nella risorsa di archiviazione a lungo termine.
- Un contenitore dell'applicazione e un contenitore di monitoraggio. Il contenitore di monitoraggio invia periodicamente una richiesta all'applicazione per assicurarsi che sia in esecuzione e che risponda correttamente. Se l'applicazione non è in esecuzione o non risponde, il contenitore di monitoraggio genera un avviso.
- 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.