Esercitazione: Preparare un'applicazione per il servizio Azure Kubernetes
Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server
In questa esercitazione, una parte di sette, un'applicazione multi-contenitore è preparata per l'uso in un cluster Kubernetes quando si usa servizio Azure Kubernetes abilitata da Azure Arc. Gli strumenti di sviluppo esistenti, ad esempio Docker Compose, vengono usati per compilare e testare un'applicazione in locale.
Si apprenderà come:
- Clonare l'origine di un'applicazione di esempio da GitHub
- Creare un'immagine del contenitore dall'origine dell'applicazione di esempio
- Testare l'applicazione multicontenitore in un ambiente Docker locale
Al termine, l'applicazione seguente viene eseguita nell'ambiente di sviluppo locale:
Nelle esercitazioni successive l'immagine del contenitore viene caricata in un Registro Azure Container e quindi distribuita in un cluster Kubernetes.
Prima di iniziare
Questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, ad esempio contenitori, immagini del contenitore e comandi docker
. Per una panoramica sulle nozioni di base dei contenitori, vedere l'introduzione a Docker.
Per completare questa esercitazione, è necessario un ambiente di sviluppo Docker locale in cui sono in esecuzione i contenitori Linux. Docker fornisce pacchetti che configurano Docker in Windows.
Nota
Il servizio Azure Kubernetes non include i componenti Docker necessari per completare ogni passaggio di queste esercitazioni. È pertanto consigliabile usare un ambiente di sviluppo completo di Docker.
Ottenere il codice dell'applicazione
L'applicazione di esempio usata in questa esercitazione è un'app di voto di base costituita da un componente Web front-end e da un'istanza redis back-end. Viene creato un pacchetto del componente Web in un'immagine del contenitore personalizzata. L'istanza di Redis usa un'immagine non modificata dell'hub Docker.
Usare GitHub per clonare l'applicazione di esempio nell'ambiente di sviluppo:
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Modificare la directory clonata:
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. Questi file vengono usati in tutta la serie di esercitazioni. Il contenuto e la struttura della directory sono i seguenti:
azure-voting-app-redis
│ azure-vote-all-in-one-redis.yaml
│ docker-compose.yaml
│ LICENSE
│ README.md
│
├───azure-vote
│ │ app_init.supervisord.conf
│ │ Dockerfile
│ │ Dockerfile-for-app-service
│ │ sshd_config
│ │
│ └───azure-vote
│ │ config_file.cfg
│ │ main.py
│ │
│ ├───static
│ │ default.css
│ │
│ └───templates
│ index.html
│
└───jenkins-tutorial
config-jenkins.sh
deploy-jenkins-vm.sh
Creare immagini del contenitore
È possibile usare Docker Compose per automatizzare la creazione di immagini dei contenitori e la distribuzione di applicazioni multi-contenitore.
Usare il file docker-compose.yaml
di esempio per creare l'immagine del contenitore, scaricare l'immagine Redis e avviare l'applicazione:
docker-compose up -d
Al termine usare il comando docker images per vedere le immagini create. Tre immagini sono state scaricate o create. L'immagine azure-vote-front contiene l'applicazione front-end e usa come base l'immagine nginx-flask. L'immagine redis viene usata per avviare un'istanza di Redis.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/azuredocs/azure-vote-front v1 84b41c268ad9 9 seconds ago 944MB
mcr.microsoft.com/oss/bitnami/redis 6.0.8 3a54a920bb6c 2 days ago 103MB
tiangolo/uwsgi-nginx-flask python3.6 a16ce562e863 6 weeks ago 944MB
Eseguire il comando docker ps per vedere i contenitori in esecuzione:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d10e5244f237 mcr.microsoft.com/azuredocs/azure-vote-front:v1 "/entrypoint.sh /sta…" 3 minutes ago Up 3 minutes 443/tcp, 0.0.0.0:8080->80/tcp azure-vote-front
21574cb38c1f mcr.microsoft.com/oss/bitnami/redis:6.0.8 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:6379->6379/tcp azure-vote-back
Testare l'applicazione in locale
Per vedere l'applicazione in esecuzione, immettere http://localhost:8080
in un Web browser locale. L'applicazione di esempio viene caricata, come illustrato nell'esempio seguente:
Pulire le risorse
Dopo aver convalidato la funzionalità dell'applicazione, è possibile arrestare e rimuovere i contenitori in esecuzione. Non eliminare le immagini del contenitore: nell'esercitazione successiva l'immagine di azure-vote-front viene caricata in un'istanza di Registro Azure Container.
Arrestare e rimuovere le istanze di contenitore e le risorse con il comando docker-compose down:
docker-compose down
Quando si rimuove l'applicazione locale, è disponibile un'immagine Docker contenente l'applicazione Voto di Azure, azure-vote-front, da usare con l'esercitazione successiva.
Passaggi successivi
In questa esercitazione è stata testata un'applicazione e sono state create le immagini del contenitore per l'applicazione stessa. Si è appreso come:
- Clonare l'origine di un'applicazione di esempio da GitHub
- Creare un'immagine del contenitore dall'origine dell'applicazione di esempio
- Testare l'applicazione multicontenitore in un ambiente Docker locale
Passare alla prossima esercitazione per apprendere come archiviare le immagini del contenitore in Registro Azure Container.