Istanze di Azure Container e agenti di orchestrazione dei contenitori

Grazie alle dimensioni ridotte e all'orientamento alle applicazioni, i contenitori sono particolarmente adatti per ambienti di recapito flessibili e architetture basate su microservizi. L'attività di automazione e gestione di un numero elevato di contenitori e della loro interazione è nota come orchestrazione. I contenitori di agenti di orchestrazione più diffusi includono Kubernetes, DC/OS e Docker Swarm.

Istanze di Azure Container fornisce alcune funzionalità di base di pianificazione delle piattaforme di orchestrazione. E anche se non copre servizi con il valore superiore forniti da tali piattaforme, Istanze di Azure Container può esserne complementare. Questo articolo descrive l'ambito di gestione di Istanze di Azure Container e l'interazione con gli agenti di orchestrazione completi dei contenitori.

Orchestrazione tradizionale

La definizione standard dell'orchestrazione include le attività seguenti:

  • Pianificazione: data un'immagine del contenitore e una richiesta di risorse, trovare una macchina adatta in cui eseguire il contenitore.
  • Affinità/Antiaffinità: specificare che i contenitori di un set devono essere eseguiti vicini tra loro (per le prestazioni) o sufficientemente distanti tra loro (disponibilità).
  • Monitoraggio dell'integrità: monitorare gli errori dei contenitori e modificare automaticamente la pianificazione.
  • Failover: tenere traccia degli elementi in esecuzione in ogni macchina e ripianificare i contenitori dalle macchine con errori ai nodi integri.
  • Scalabilità: aggiungere o rimuovere istanze di contenitori per soddisfare la domanda, in modo automatico o manuale.
  • Rete: fornire una rete di overlay per coordinare i contenitori nella comunicazione tra più computer host.
  • Individuazione del servizio: consentire l'individuazione reciproca dei contenitori anche quando si spostano tra computer host e cambiano indirizzo IP.
  • Aggiornamenti coordinati delle applicazioni: gestire gli aggiornamenti dei contenitori per evitare tempi di inattività delle applicazioni e consentire il rollback in caso di errore.

Orchestrazione con Istanze di Azure Container: un approccio a più livelli

Istanze di Azure Container consente un approccio a più livelli all'orchestrazione, fornendo tutte le funzionalità di pianificazione e gestione necessarie per eseguire un singolo contenitore, consentendo alle piattaforme degli agenti di orchestrazione di gestire attività di multi-contenitore sul contenitore stesso.

Poiché Azure gestisce l'infrastruttura sottostante delle istanze di contenitore, una piattaforma dell'agente di orchestrazione non ha bisogno di cercare un computer host appropriato in cui eseguire un singolo contenitore. L'elasticità del cloud garantisce che ci sia sempre un computer host a disposizione. L'agente di orchestrazione può invece concentrarsi sulle attività che semplificano lo sviluppo di architetture multi-contenitore, tra cui il ridimensionamento e gli aggiornamenti coordinati.

Scenari

Anche se l'integrazione degli agenti di orchestrazione con Istanze di Azure Container è ancora agli inizi, si prevede che emergano alcuni ambienti diversi:

Orchestrazione delle istanze di contenitore in modo esclusivo

Dato l'avvio rapido e la fatturazione al secondo, un ambiente basato esclusivamente su Istanze di Azure Container rappresenta il modo più veloce per iniziare e gestire carichi di lavoro estremamente variabili.

Combinazione di istanze di contenitore e contenitori in Macchine virtuali

Per i carichi di lavoro stabili e a esecuzione prolungata, l'orchestrazione di contenitori in un cluster di macchine virtuali dedicate è in genere più economica rispetto all'esecuzione degli stessi contenitori con Istanze di Azure Container. Le istanze di contenitore offrono tuttavia un'ottima soluzione per la rapida espansione e contrazione della capacità complessiva, per gestire i picchi di utilizzo di breve durata o imprevisti.

Invece di aumentare il numero di macchine virtuali nel cluster e quindi distribuire più contenitori in tali macchine, l'agente di orchestrazione può pianificare i contenitori aggiuntivi in Istanze di Azure Container ed eliminarli quando non sono più necessari.

Implementazione di esempio: nodi virtuali per il servizio Azure Kubernetes (AKS)

Per ridimensionare rapidamente i carichi di lavoro dell'applicazione in un cluster del servizio Azure Kubernetes è possibile usare nodi virtuali creati dinamicamente in Istanze di Azure Container. I nodi virtuali abilitano la comunicazione di rete tra i pod eseguiti in ACI e nel cluster del servizio Azure Kubernetes.

I nodi virtuali supportano attualmente le istanze di contenitore di Linux. Per imparare a usare i nodi virtuali usare l'interfaccia della riga di comando di Azure o il portale di Azure.

I nodi virtuali usano il kubelet virtuale open source per simulare il kubelet di Kubernetes eseguendo la registrazione come nodo con capacità illimitata. Il kubelet virtuale recapita la creazione di pod come gruppi di contenitori in Istanze di Azure Container.

Vedere il progetto Virtual Kubelet (Kubelet virtuale) per altri esempi di estensione dell'API Kubernetes nelle piattaforme di contenitori senza server.

Passaggi successivi

Creare il primo contenitore usando la guida introduttiva di Istanze di Azure Container.