Esplorare Istanze di Azure Container

Completato

Istanze di Azure Container è un'ottima soluzione per qualsiasi scenario e funziona anche in contenitori isolati, inclusi i processi di compilazione, l'automazione di attività e le applicazioni semplici. Di seguito vengono illustrati alcuni vantaggi:

  • Avvio rapido: il servizio Istanze di Azure Container può avviare i contenitori in Azure in pochi secondi, senza che siano necessari il provisioning e la gestione delle macchine virtuali
  • Accesso ai contenitori: il servizio Istanze di Azure Container consente di esporre i gruppi di contenitori direttamente su Internet con un indirizzo IP e un nome di dominio completo (FQDN)
  • Sicurezza a livello di hypervisor: per isolare l'applicazione completamente come se si trovasse in una macchina virtuale
  • Dati dei clienti: il servizio Istanze di Azure Container archivia i dati minimi del cliente necessari per garantire l'esecuzione dei gruppi di contenitori nel modo previsto
  • Dimensioni personalizzate: il servizio Istanze di Azure Container offre un utilizzo ottimale consentendo specifiche esatte dei core della CPU e della memoria
  • Archiviazione permanente: montare condivisioni file di Azure direttamente in un contenitore per recuperare lo stato e renderlo permanente
  • Linux e Windows: consente di pianificare contenitori sia Windows che Linux usando la stessa API.

Per gli scenari in cui si rende necessaria l'orchestrazione completa dei contenitori, quali il rilevamento dei servizi tra più contenitori, la scalabilità automatica e gli aggiornamenti coordinati delle applicazioni, è consigliabile usare il servizio Azure Kubernetes.

Gruppi di contenitori

La risorsa di primo livello in Istanze di Azure Container è il 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 un pod in Kubernetes.

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

Example container group with two containers, one listening on port 80 and the other listening on port 5000.

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.

Distribuzione

Esistono due modi comuni per distribuire un gruppo multi-contenitore: usare un modello di Resource Manager o usare un file YAML. Un modello di Resource Manager è consigliato quando è necessario distribuire più risorse 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.

Allocazione delle risorse

Istanze di Azure Container alloca risorse come le CPU, la memoria e, facoltativamente, le GPU (anteprima) a un gruppo di contenitori aggiungendo le richieste di risorse delle istanze nel gruppo. Usando come esempio le risorse della CPU, se si crea un gruppo di contenitori con due istanze, ognuna delle quali richiede una CPU, al gruppo di contenitori vengono allocate due CPU.

Rete

I gruppi di contenitori condividono un indirizzo IP e uno spazio dei nomi di porta in tale indirizzo IP. Per consentire ai client esterni di raggiungere un contenitore all'interno del gruppo, è necessario esporre la porta sull'indirizzo IP e dal contenitore. Poiché i contenitori all'interno del gruppo condividono uno spazio dei nomi delle porte, il mapping delle porte non è supportato. I contenitori all'interno di un gruppo possono raggiungere l'un l'altro tramite localhost sulle porte esposte, anche se tali porte non vengono esposte esternamente sull'indirizzo IP del gruppo.

Storage

È possibile impostare il montaggio di volumi esterni all'interno di un gruppo di contenitori ed eseguire il mapping di tali volumi in percorsi specifici all'interno dei singoli contenitori di un gruppo. I volumi supportati includono:

  • Condivisione file di Azure
  • Segreto
  • Directory vuota
  • Repository Git clonato

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 essere distribuite da team diversi e hanno requisiti di risorse distinti.

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.