Tutorial: Vorbereiten einer Anwendung für Azure Kubernetes Service (AKS)
In diesem Tutorial – Teil 1 von 7 – bereiten Sie eine Anwendung mit mehreren Containern für die Verwendung in Kubernetes vor. Sie verwenden vorhandene Entwicklungstools wie Docker Compose, um die Anwendung lokal zu erstellen und zu testen. Folgendes wird vermittelt:
- Klonen einer Beispielanwendungsquelle von GitHub
- Erstellen eines Containerimages aus der Beispielanwendungsquelle
- Testen der Anwendung mit mehreren Containern in einer lokalen Docker-Umgebung
Nach Abschluss wird die Anwendung in Ihrer lokalen Entwicklungsumgebung ausgeführt:
In nachfolgenden Tutorials laden Sie das Containerimage in eine Azure Container Registry (ACR) hoch und stellen es anschließend in einem AKS-Cluster bereit.
Voraussetzungen
In diesem Tutorial wird vorausgesetzt, dass zentrale Docker-Konzepte wie Container und Containerimages sowie docker
-Befehle bekannt sind. Eine Einführung in Container finden Sie bei Bedarf unter Get started with Docker (Erste Schritte mit Docker).
Für dieses Tutorial ist eine lokale Docker-Entwicklungsumgebung mit Linux-Containern erforderlich. Für Docker sind Pakete erhältlich, mit denen Docker in einem Mac-, Windows- oder Linux-System konfiguriert werden kann.
Hinweis
Azure Cloud Shell umfasst keine Docker-Komponenten, die zum Abschließen der einzelnen Schritte dieser Tutorials erforderlich sind. Aus diesem Grund wird empfohlen, eine vollständige Docker-Entwicklungsumgebung zu verwenden.
Abrufen von Anwendungscode
Die in diesem Tutorial verwendete Beispielanwendung ist eine einfache Abstimmungs-App, die aus einer Front-End-Webkomponente und einer Back-End-Redis-Instanz besteht. Die Webkomponente wird in ein benutzerdefiniertes Containerimage gepackt. Die Redis-Instanz verwendet ein nicht modifiziertes Image aus Docker Hub.
Verwenden Sie Git, um die Beispielanwendung in Ihrer Entwicklungsumgebung zu klonen.
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Wechseln Sie in das geklonte Verzeichnis.
cd azure-voting-app-redis
Das Verzeichnis enthält den Anwendungsquellcode, eine vorab erstellte Docker Compose-Datei und eine Kubernetes-Manifestdatei. Diese Dateien werden während des Tutorials verwendet. Inhalt und Struktur des Verzeichnisses sind wie folgt:
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
Erstellen von Containerimages
Docker Compose kann verwendet werden, um die Erstellung von Containerimages und die Bereitstellung von Anwendungen mit mehreren Containern zu automatisieren.
Der folgende Befehl verwendet die Beispieldatei docker-compose.yaml
, um das Containerimage zu erstellen, das Redis-Image herunterzuladen und die Anwendung zu starten.
docker-compose up -d
Verwenden Sie anschließend den Befehl docker images
, um die erstellten Images anzuzeigen. Drei Images werden heruntergeladen oder erstellt. Das Image azure-vote-front enthält die Front-End-Anwendung und verwendet das nginx-flask-Image als Grundlage. Das redis-Image wird zum Starten einer Redis-Instanz verwendet.
$ 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
Führen Sie den Befehl docker ps
aus, um die ausgeführten Container anzuzeigen.
$ 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
Lokales Testen der Anwendung
Zum Anzeigen Ihrer ausgeführten Anwendung wechseln Sie in einem lokalen Webbrowser zu http://localhost:8080
. Die Beispielanwendung wird wie im folgenden Beispiel geladen:
Bereinigen von Ressourcen
Nach der Überprüfung der Funktionsfähigkeit der Anwendung können die ausgeführten Container beendet und entfernt werden. Löschen Sie die Containerimages nicht. Im nächsten Tutorial laden Sie das Image azure-vote-front in eine ACR-Instanz hoch.
Um die Containerinstanzen und -ressourcen zu beenden und zu entfernen, verwenden Sie den Befehl docker-compose down
.
docker-compose down
Wenn die lokale Anwendung entfernt wurde, verfügen Sie über ein Docker-Image, das die Azure Vote-Anwendung azure-vote-front für die Verwendung im nächsten Tutorial enthält.
Nächste Schritte
In diesem Tutorial haben Sie eine Beispielanwendung erstellt, Containerimages für die Anwendung erstellt und dann die Anwendung getestet. Sie haben Folgendes gelernt:
- Klonen einer Beispielanwendungsquelle von GitHub
- Erstellen eines Containerimages aus der Beispielanwendungsquelle
- Testen der Anwendung mit mehreren Containern in einer lokalen Docker-Umgebung
Im nächsten Tutorial erfahren Sie, wie Sie Containerimages in einer ACR speichern.