(DEPRECATO) Introduzione alle soluzioni di hosting di contenitori Docker con il servizio Azure Container

Avviso

Il servizio Azure Container (ACS) è deprecato. Non saranno aggiunte nuove funzionalità al servizio Azure Container. Tutte le API, l'esperienza del portale, i comandi dell'interfaccia della riga di comando e la documentazione sono contrassegnate come deprecate.

Per altre informazioni, vedere l'annuncio di deprecazione del servizio Azure Container su Azure.com.

È consigliabile distribuire una delle soluzioni di Azure Marketplace seguenti:

Se si vuole usare Kubernetes, vedere Servizio Azure Kubernetes.

Il servizio Azure Container fornisce un modo per semplificare la creazione, la configurazione e la gestione di un cluster di macchine virtuali preconfigurate per eseguire le applicazioni nei contenitori. Usa una configurazione ottimizzata di strumenti di pianificazione e orchestrazione open source comuni. Ciò consente di usare le competenze già acquisite o di attingere da un consistente e crescente bagaglio di competenze a livello di community per distribuire e gestire applicazioni basate sul contenitore in Microsoft Azure.

Il servizio Azure Container fornisce uno strumento per gestire applicazioni in contenitori su più host in Azure.

Il servizio Azure Container si avvale del formato di contenitore Docker per garantire che i contenitori di applicazioni siano completamente portabili. Supporta anche la scelta di Marathon e DC/OS, Docker Swarm o Kubernetes per garantire che queste applicazioni possano essere ridimensionate in migliaia, persino decine di migliaia, di contenitori.

Il servizio Azure Container consente di sfruttare i vantaggi delle funzioni di classe enterprise di Azure mantenendo al tempo stesso la portabilità delle applicazioni, inclusi i livelli di orchestrazione.

Utilizzo del servizio Azure Container

L'obiettivo del servizio Azure Container è fornire un ambiente di hosting per i contenitori tramite tecnologie e strumenti open source attualmente diffusi tra i nostri utenti. A tal fine vengono esposti gli endpoint API standard per l'agente di orchestrazione scelto: DC/OS, Docker Swarm o Kubernetes. Tramite questi endpoint è possibile usare qualsiasi software in grado di comunicare con essi. Ad esempio, nel caso dell'endpoint Docker Swarm, è possibile scegliere di usare l'interfaccia della riga di comando (CLI) Docker. Per DC/OS è possibile scegliere l'interfaccia della riga di comando DCOS. Per Kubernetes, è possibile scegliere kubectl.

Creazione di un cluster Docker con il servizio Azure Container

Per iniziare a usare il servizio Azure Container, distribuire un cluster del servizio tramite il portale (cercare servizio Azure Container nel Marketplace), usando un modello di Azure Resource Manager (Docker Swarm, Controller di dominio/sistema operativo o Kubernetes) oppure l'interfaccia della riga di comando di Azure. I modelli di avvio rapido forniti possono essere modificati per includere una configurazione di Azure aggiuntiva o avanzata. Per altre informazioni, vedere Distribuire un cluster del servizio Azure Container.

Distribuzione di un'applicazione

Il servizio Azure Container consente di scegliere tra Docker Swarm, DC/OS o Kubernetes per l'orchestrazione. La modalità di distribuzione dell'applicazione dipende dall'agente di orchestrazione scelto.

Uso di DC/OS

DC/OS è un sistema operativo distribuito basato sul kernel dei sistemi distribuiti Apache Mesos. Apache Mesos fa parte di Apache Software Foundation e annovera tra gli utenti e i collaboratori alcuni dei nomi più importanti del panorama IT .

servizio Azure Container configurato per DC/OS che mostra agenti e schemi.

DC/OS e Apache Mesos offrono un set di funzionalità molto ampio:

  • Scalabilità collaudata
  • Server primario e server secondari replicati a tolleranza di errore che usano Apache ZooKeeper
  • Supporto per i contenitori formattati Docker
  • Isolamento nativo tra le attività con i contenitori Linux
  • Pianificazione di più risorse (memoria, CPU, disco e porte)
  • Java, Python e API C++ per lo sviluppo di nuove applicazioni parallele
  • Interfaccia utente Web per la visualizzazione dello stato del cluster

Per impostazione predefinita, DC/OS in esecuzione nel servizio Azure Container include la piattaforma di orchestrazione Marathon per la pianificazione dei carichi di lavoro. La distribuzione di DC/OS del servizio ACS include tuttavia il pacchetto Mesosphere Universe di servizi che possono essere aggiunti al servizio, tra cui Spark, Hadoop, Cassandra e molto altro ancora.

Universe DC/OS nel servizio Azure Container

Uso di Marathon

Marathon è un sistema di init e controllo di tutto il cluster per i servizi in cgroups o, nel caso del servizio Azure Container, in contenitori formattati Docker. Marathon offre un'interfaccia utente Web da cui è possibile distribuire le applicazioni. È possibile accedervi tramite un URL simile a http://DNS_PREFIX.REGION.cloudapp.azure.com dove DNS_PREFIX e REGION sono entrambi definiti in fase di distribuzione. È anche possibile fornire il proprio nome DNS. Per altre informazioni sull'esecuzione di un contenitore tramite l'interfaccia utente Web di Marathon, vedere Gestione di contenitori DC/OS tramite l'interfaccia utente Web di Marathon.

Elenco di applicazioni Marathon

È anche possibile usare le API REST per la comunicazione con Marathon. Esistono una serie di librerie client disponibili per ogni strumento. Coprono un'ampia gamma di linguaggi ed è possibile usare il protocollo HTTP in qualsiasi linguaggio. Inoltre, molti strumenti comuni di DevOps forniscono il supporto per Marathon. Ciò fornisce flessibilità massima per il team operativo quando si lavora con un cluster del servizio Azure Container. Per altre informazioni sull'esecuzione di un contenitore tramite l'API REST di Marathon, vedere Gestione di contenitori DC/OS tramite l'API REST di Marathon.

Utilizzo di Docker Swarm

Docker Swarm fornisce clustering nativo per Docker. Poiché Docker Swarm serve l'API Docker standard, gli strumenti che già comunicano con un daemon Docker possono usare Swarm per la scalabilità trasparente a più host nel servizio Azure Container.

servizio Azure Container configurato per l'uso di Swarm.

Nota

L'agente di orchestrazione Docker Swarm nel servizio Azure Container usa Swarm autonomo legacy. La modalità Swarm integrata (in Docker 1.12 e versioni successive) attualmente non è un agente di orchestrazione supportato nel servizio Azure Container. Per distribuire un cluster in modalità Swarm in Azure, usare il motore ACS open source, un modello di avvio rapido creato dalla community, o una soluzione Docker in Azure Marketplace.

Gli strumenti supportati per la gestione dei contenitori in un cluster Swarm includono in particolare quanto segue:

  • Dokku
  • Docker CLI e Docker Compose
  • Krane
  • Jenkins

Uso di Kubernetes

Kubernetes è un diffuso strumento open source di livello di produzione per l'orchestrazione di contenitori. Kubernetes automatizza la distribuzione, il ridimensionamento e la gestione delle applicazioni nei contenitori. Trattandosi di una soluzione open source che dipende dalla community open source, Kubernetes funziona perfettamente nel servizio Azure Container e permette di distribuirvi contenitori su larga scala.

servizio Azure Container configurato per l'uso di Kubernetes.

Dispone di un set completo di funzionalità tra cui:

  • Scalabilità orizzontale
  • Bilanciamento del carico e rilevamento del servizio
  • Gestione della configurazione e segreti
  • Implementazioni e ripristini automatizzati basati sull'API
  • Riparazione automatica

Video

Introduzione al servizio Azure Container (101):

Compilazione di applicazioni tramite il servizio Azure Container (build 2016)

Passaggi successivi

Distribuire un cluster del servizio contenitore usando il portale o l'interfaccia della riga di comando di Azure.