Introduzione alle soluzioni di hosting di contenitori Docker con il servizio contenitore di AzureIntroduction to Docker container hosting solutions with Azure Container Service

Il servizio contenitore di Azure 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.Azure Container Service makes it simpler for you to create, configure, and manage a cluster of virtual machines that are preconfigured to run containerized applications. Usa una configurazione ottimizzata di strumenti di pianificazione e orchestrazione open source comuni.It uses an optimized configuration of popular open-source scheduling and orchestration tools. 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.This enables you to use your existing skills, or draw upon a large and growing body of community expertise, to deploy and manage container-based applications on Microsoft Azure.

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

Il servizio contenitore di Azure si avvale del formato di contenitore Docker per garantire che i contenitori di applicazioni siano completamente portabili.Azure Container Service leverages the Docker container format to ensure that your application containers are fully portable. 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.It also supports your choice of Marathon and DC/OS, Docker Swarm, or Kubernetes so that you can scale these applications to thousands of containers, or even tens of thousands.

Il servizio contenitore di Azure 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.By using Azure Container Service, you can take advantage of the enterprise-grade features of Azure, while still maintaining application portability--including portability at the orchestration layers.

Utilizzo del servizio contenitore di AzureUsing Azure Container Service

L'obiettivo del servizio contenitore di Azure è fornire un ambiente host contenitore tramite tecnologie e strumenti open source, che sono attualmente diffusi fra i nostri clienti.Our goal with Azure Container Service is to provide a container hosting environment by using open-source tools and technologies that are popular among our customers today. A tal fine vengono esposti gli endpoint API standard per l'agente di orchestrazione scelto: DC/OS, Docker Swarm o Kubernetes.To this end, we expose the standard API endpoints for your chosen orchestrator (DC/OS, Docker Swarm, or Kubernetes). Tramite questi endpoint è possibile usare qualsiasi software in grado di comunicare con essi.By using these endpoints, you can leverage any software that is capable of talking to those endpoints. Ad esempio, nel caso dell'endpoint Docker Swarm, è possibile scegliere di usare l'interfaccia della riga di comando (CLI) Docker.For example, in the case of the Docker Swarm endpoint, you might choose to use the Docker command-line interface (CLI). Per DC/OS è possibile scegliere l'interfaccia della riga di comando DCOS.For DC/OS, you might choose the DCOS CLI. Per Kubernetes, è possibile scegliere kubectl.For Kubernetes, you might choose kubectl.

Creazione di un cluster Docker con il servizio contenitore di AzureCreating a Docker cluster by using Azure Container Service

Per iniziare a usare il servizio contenitore di Azure, distribuire un cluster del servizio tramite il portale (cercare Servizio contenitore di Azure nel Marketplace), usando un modello di Azure Resource Manager (Docker Swarm, DC/OS o Kubernetes) oppure l'interfaccia della riga di comando di Azure 2.0.To begin using Azure Container Service, you deploy an Azure Container Service cluster via the portal (search the Marketplace for Azure Container Service), by using an Azure Resource Manager template (Docker Swarm, DC/OS, or Kubernetes), or with the Azure CLI 2.0. I modelli di avvio rapido forniti possono essere modificati per includere una configurazione di Azure aggiuntiva o avanzata.The provided quickstart templates can be modified to include additional or advanced Azure configuration. Per altre informazioni, vedere Distribuire un cluster del servizio contenitore di Azure.For more information, see Deploy an Azure Container Service cluster.

Distribuzione di un'applicazioneDeploying an application

Il servizio contenitore di Azure consente di scegliere tra Docker Swarm, DC/OS o Kubernetes per l'orchestrazione.Azure Container Service provides a choice of Docker Swarm, DC/OS, or Kubernetes for orchestration. La modalità di distribuzione dell'applicazione dipende dall'agente di orchestrazione scelto.How you deploy your application depends on your choice of orchestrator.

Uso di DC/OSUsing DC/OS

DC/OS è un sistema operativo distribuito basato sul kernel dei sistemi distribuiti Apache Mesos.DC/OS is a distributed operating system based on the Apache Mesos distributed systems kernel. Apache Mesos fa parte di Apache Software Foundation e annovera tra gli utenti e i collaboratori alcuni dei nomi più importanti del panorama IT .Apache Mesos is housed at the Apache Software Foundation and lists some of the biggest names in IT as users and contributors.

Servizio contenitore di Azure configurato per DC/OS che mostra agenti e schemi.

DC/OS e Apache Mesos offrono un set di funzionalità molto ampio:DC/OS and Apache Mesos include an impressive feature set:

  • Scalabilità collaudataProven scalability
  • Schemi replicati a tolleranza di errore e slave con Apache ZooKeeperFault-tolerant replicated master and slaves using Apache ZooKeeper
  • Supporto per i contenitori formattati DockerSupport for Docker-formatted containers
  • Isolamento nativo tra le attività con i contenitori LinuxNative isolation between tasks with Linux containers
  • Pianificazione di più risorse (memoria, CPU, disco e porte)Multiresource scheduling (memory, CPU, disk, and ports)
  • Java, Python e API C++ per lo sviluppo di nuove applicazioni paralleleJava, Python, and C++ APIs for developing new parallel applications
  • Interfaccia utente Web per la visualizzazione dello stato del clusterA web UI for viewing cluster state

Per impostazione predefinita, DC/OS in esecuzione nel servizio contenitore di Azure include la piattaforma di orchestrazione Marathon per la pianificazione dei carichi di lavoro.By default, DC/OS running on Azure Container Service includes the Marathon orchestration platform for scheduling workloads. La distribuzione di DC/OS del servizio ACS include tuttavia il pacchetto Mesosphere Universe di servizi che possono essere aggiunti al servizio,However, included with the DC/OS deployment of ACS is the Mesosphere Universe of services that can be added to your service. tra cui Spark, Hadoop, Cassandra e molto altro ancora.Services in the Universe include Spark, Hadoop, Cassandra, and much more.

Universe DC/OS nel servizio contenitore di Azure

Uso di MarathonUsing Marathon

Marathon è un sistema di init e controllo di tutto il cluster per i servizi in cgroups o, nel caso del servizio contenitore di Azure, in contenitori formattati Docker.Marathon is a cluster-wide init and control system for services in cgroups--or, in the case of Azure Container Service, Docker-formatted containers. Marathon offre un'interfaccia utente Web da cui è possibile distribuire le applicazioni.Marathon provides a web UI from which you can deploy your applications. L'accesso avviene tramite un URL simile a http://DNS_PREFIX.REGION.cloudapp.azure.com, dove DNS_PREFIX e REGION vengono definiti in fase di distribuzione.You can access this at a URL that looks something like http://DNS_PREFIX.REGION.cloudapp.azure.com where DNS_PREFIX and REGION are both defined at deployment time. Naturalmente, è anche possibile fornire il proprio nome DNS.Of course, you can also provide your own DNS name. 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.For more information on running a container using the Marathon web UI, see DC/OS container management through the Marathon web UI.

Elenco di applicazioni Marathon

È anche possibile usare le API REST per la comunicazione con Marathon.You can also use the REST APIs for communicating with Marathon. Esistono una serie di librerie client disponibili per ogni strumento.There are a number of client libraries that are available for each tool. Coprono un'ampia gamma di linguaggi e, naturalmente, è possibile utilizzare il protocollo HTTP in qualsiasi linguaggio.They cover a variety of languages--and, of course, you can use the HTTP protocol in any language. Inoltre, molti strumenti comuni di DevOps forniscono il supporto per Marathon.In addition, many popular DevOps tools provide support for Marathon. Ciò fornisce flessibilità massima per il team operativo quando si lavora con un cluster del servizio contenitore di Azure.This provides maximum flexibility for your operations team when you are working with an Azure Container Service cluster. 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.For more information on running a container by using the Marathon REST API, see DC/OS container management through the Marathon REST API.

Utilizzo di Docker SwarmUsing Docker Swarm

Docker Swarm fornisce clustering nativo per Docker.Docker Swarm provides native clustering for 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 contenitore di Azure.Because Docker Swarm serves the standard Docker API, any tool that already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts on Azure Container Service.

Servizio contenitore di Azure configurato per l'uso di Swarm.

Nota

L'agente di orchestrazione Docker Swarm nel servizio contenitore di Azure usa Swarm autonomo legacy.The Docker Swarm orchestrator in Azure Container Service uses legacy standalone Swarm. La modalità Swarm integrata (in Docker 1.12 e versioni successive) attualmente non è un agente di orchestrazione supportato nel servizio contenitore di Azure.Currently, the integrated Swarm mode (in Docker 1.12 and higher) is not a supported orchestrator in Azure Container Service. 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.If you want to deploy a Swarm mode cluster in Azure, use the open-source ACS Engine, a community-contributed quickstart template, or a Docker solution in the Azure Marketplace.

Gli strumenti supportati per la gestione dei contenitori in un cluster Swarm includono in particolare quanto segue:Supported tools for managing containers on a Swarm cluster include, but are not limited to, the following:

  • DokkuDokku
  • Docker CLI e Docker ComposeDocker CLI and Docker Compose
  • KraneKrane
  • JenkinsJenkins

Uso di KubernetesUsing Kubernetes

Kubernetes è un diffuso strumento open source di livello di produzione per l'orchestrazione di contenitori.Kubernetes is a popular open-source, production-grade container orchestrator tool. Kubernetes automatizza la distribuzione, il ridimensionamento e la gestione delle applicazioni nei contenitori.Kubernetes automates deployment, scaling, and management of containerized applications. Trattandosi di una soluzione open source che dipende dalla community open source, Kubernetes funziona perfettamente nel servizio contenitore di Azure e permette di distribuirvi contenitori su larga scala.Because it is an open-source solution and is driven by the open-source community, it runs seamlessly on Azure Container Service and can be used to deploy containers at scale on Azure Container Service.

Servizio contenitore di Azure configurato per l'uso di Kubernetes.

Dispone di un set completo di funzionalità tra cui:It has a rich set of features including:

  • Scalabilità orizzontaleHorizontal scaling
  • Bilanciamento del carico e rilevamento del servizioService discovery and load balancing
  • Gestione della configurazione e segretiSecrets and configuration management
  • Implementazioni e ripristini automatizzati basati sull'APIAPI-based automated rollouts and rollbacks
  • Riparazione automaticaSelf-healing

VideoVideos

Introduzione al servizio contenitore di Azure (101):Getting started with Azure Container Service (101):

Compilazione di applicazioni tramite il servizio contenitore di Azure (build 2016)Building Applications Using the Azure Container Service (Build 2016)

Passaggi successiviNext steps

Distribuire un cluster del servizio contenitore usando il portale o l'interfaccia della riga di comando di Azure 2.0.Deploy a container service cluster using the portal or Azure CLI 2.0.