Esercitazione: Preparare un'applicazione per il servizio Azure KubernetesTutorial: Prepare an application for Azure Kubernetes Service (AKS)

In questa esercitazione, parte uno di sette, si prepara un'applicazione multi-contenitore per l'uso in Kubernetes.In this tutorial, part one of seven, a multi-container application is prepared for use in Kubernetes. Per compilare e testare in locale un'applicazione, si usano strumenti di sviluppo esistenti, ad esempio Docker Compose.Existing development tools such as Docker Compose are used to locally build and test an application. Si apprenderà come:You learn how to:

  • Clonare l'origine di un'applicazione di esempio da GitHubClone a sample application source from GitHub
  • Creare un'immagine del contenitore dall'origine dell'applicazione di esempioCreate a container image from the sample application source
  • Testare l'applicazione multicontenitore in un ambiente Docker localeTest the multi-container application in a local Docker environment

Al termine, l'applicazione seguente viene eseguita nell'ambiente di sviluppo locale:Once completed, the following application runs in your local development environment:

Immagine del cluster Kubernetes in Azure

In altre esercitazioni l'immagine del contenitore verrà caricata in un'istanza di Registro Azure Container e quindi distribuita in un cluster del servizio Azure Kubernetes.In additional tutorials, the container image is uploaded to an Azure Container Registry, and then deployed into an AKS cluster.

Prima di iniziareBefore you begin

Questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, ad esempio contenitori, immagini del contenitore e comandi docker.This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and docker commands. Per una panoramica sulle nozioni di base dei contenitori, vedere Get started with Docker (Introduzione a Docker).For a primer on container basics, see Get started with Docker.

Per completare questa esercitazione, è necessario un ambiente di sviluppo Docker locale in cui sono in esecuzione i contenitori Linux.To complete this tutorial, you need a local Docker development environment running Linux containers. Docker offre pacchetti che consentono di configurare Docker in un sistema Mac, Windows o Linux.Docker provides packages that configure Docker on a Mac, Windows, or Linux system.

Azure Cloud Shell non include i componenti di Docker necessari per completare ogni passaggio di queste esercitazioni.Azure Cloud Shell does not include the Docker components required to complete every step in these tutorials. È pertanto consigliabile usare un ambiente di sviluppo completo di Docker.Therefore, we recommend using a full Docker development environment.

Ottenere il codice dell'applicazioneGet application code

L'applicazione di esempio utilizzata in questa esercitazione è un'app di voto base.The sample application used in this tutorial is a basic voting app. L'applicazione è costituita da un componente Web front-end e un'istanza Redis back-end.The application consists of a front-end web component and a back-end Redis instance. Viene creato un pacchetto del componente Web in un'immagine del contenitore personalizzata.The web component is packaged into a custom container image. L'istanza di Redis usa un'immagine non modificata dell'hub Docker.The Redis instance uses an unmodified image from Docker Hub.

Usare git per clonare l'applicazione di esempio nell'ambiente di sviluppo:Use git to clone the sample application to your development environment:

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

Passare alla directory clonata.Change into the cloned directory.

cd azure-voting-app-redis

All'interno della directory sono disponibili il codice sorgente dell'applicazione, un file Docker Compose creato in precedenza e un file manifesto Kubernetes.Inside the directory is the application source code, a pre-created Docker compose file, and a Kubernetes manifest file. Questi file vengono usati in tutta la serie di esercitazioni.These files are used throughout the tutorial set.

Creare immagini del contenitoreCreate container images

Docker Compose può essere usato per automatizzare la compilazione di immagini del contenitore e la distribuzione di applicazioni multicontenitore.Docker Compose can be used to automate building container images and the deployment of multi-container applications.

Usare il file docker-compose.yaml di esempio per creare l'immagine del contenitore, scaricare l'immagine Redis e avviare l'applicazione:Use the sample docker-compose.yaml file to create the container image, download the Redis image, and start the application:

docker-compose up -d

Al termine usare il comando docker images per vedere le immagini create.When completed, use the docker images command to see the created images. Sono state scaricate o create tre immagini.Three images have been downloaded or created. L'immagine azure-vote-front contiene l'applicazione front-end e usa l'immagine nginx-flask come base.The azure-vote-front image contains the front-end application and uses the nginx-flask image as a base. L'immagine redis viene usata per avviare un'istanza di Redis.The redis image is used to start a Redis instance.

$ docker images

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

Eseguire il comando docker ps per vedere i contenitori in esecuzione:Run the docker ps command to see the running containers:

$ docker ps

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

Testare l'applicazione in localeTest application locally

Per vedere l'applicazione in esecuzione, immettere http://localhost:8080 in un Web browser locale.To see the running application, enter http://localhost:8080 in a local web browser. L'applicazione di esempio viene caricata, come illustrato nell'esempio seguente:The sample application loads, as shown in the following example:

Immagine del cluster Kubernetes in Azure

Pulire le risorseClean up resources

Ora che le funzionalità dell'applicazione sono state verificate, i contenitori in esecuzione possono essere arrestati e rimossi.Now that the application's functionality has been validated, the running containers can be stopped and removed. Non eliminare le immagini del contenitore perché nell'esercitazione successiva l'immagine azure-vote-front verrà caricata in un'istanza di Registro Azure Container.Do not delete the container images - in the next tutorial, the azure-vote-front image is uploaded to an Azure Container Registry instance.

Arrestare e rimuovere le istanze e le risorse di contenitore con il comando docker-compose down:Stop and remove the container instances and resources with the docker-compose down command:

docker-compose down

Dopo che l'applicazione locale è stata rimossa, è disponibile un'immagine Docker contenente l'applicazione Azure Vote, azure-front-front, da usare nell'esercitazione successiva.When the local application has been removed, you have a Docker image that contains the Azure Vote application, azure-front-front, for use with the next tutorial.

Passaggi successiviNext steps

In questa esercitazione è stata testata un'applicazione e sono state create le immagini del contenitore per l'applicazione stessa.In this tutorial, an application was tested and container images created for the application. Si è appreso come:You learned how to:

  • Clonare l'origine di un'applicazione di esempio da GitHubClone a sample application source from GitHub
  • Creare un'immagine del contenitore dall'origine dell'applicazione di esempioCreate a container image from the sample application source
  • Testare l'applicazione multicontenitore in un ambiente Docker localeTest the multi-container application in a local Docker environment

Passare alla prossima esercitazione per apprendere come archiviare le immagini del contenitore in Registro Azure Container.Advance to the next tutorial to learn how to store container images in Azure Container Registry.