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. È simile al concetto 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 di Windows, Istanze di Azure Container supporta solo la distribuzione di una singola istanza del contenitore. Mentre stiamo lavorando per portare tutte le funzionalità nei contenitori Windows, puoi 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. Un modello di Resource Manager è consigliato quando è necessario distribuire risorse aggiuntive del servizio di Azure(ad esempio, una condivisione File di Azure) quando si distribuiscono le istanze del 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 sul modello di Resource Manager o la documentazione di riferimento su 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 per lo sviluppo di una nuova configurazione in YAML.
Allocazione delle risorse
Istanze di Azure Container alloca risorse come CPU, memoria e facoltativamente GPU (anteprima) a un gruppo multi-contenitore aggiungendo le richieste di risorse delle istanze nel gruppo. Prendendo come esempio le risorse della CPU, se si crea un gruppo di contenitori con due istanze di contenitore, ognuna delle quali richiede 1 CPU, il gruppo di contenitori viene allocato a 2 CPU.
Utilizzo delle risorse da parte di istanze di 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 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 da eseguire 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 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 del contenitore possono raggiungere tra loro tramite localhost su qualsiasi porta, anche se tali 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 un numero ridotto di immagini del contenitore. Queste immagini possono quindi essere fornite da team diversi e hanno requisiti di risorse separati.
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.