Tutorial: Vorbereiten einer Anwendung für AKS
Gilt für: AKS in Azure Stack HCI 22H2, AKS unter Windows Server
In diesem Tutorial, Teil 1 von sieben, wird eine Anwendung mit mehreren Containern für die Verwendung in einem Kubernetes-Cluster vorbereitet, wenn Sie Azure Kubernetes Service verwenden, die von Azure Arc aktiviert sind. Vorhandene Entwicklungstools wie Docker Compose werden zum lokalen Erstellen und Testen einer Anwendung verwendet.
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 späteren Tutorials wird das Containerimage in eine Azure Container Registry hochgeladen und dann in einem Kubernetes-Cluster bereitgestellt.
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, die Docker unter Windows konfigurieren.
Hinweis
AKS enthält nicht die Docker-Komponenten, die für jeden Schritt in diesen 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 GitHub , um die Beispielanwendung in Ihre 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
Im Verzeichnis befinden sich der 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
Sie können Docker Compose verwenden, um das Erstellen von Containerimages und die Bereitstellung von Anwendungen mit mehreren Containern zu automatisieren.
Verwenden Sie 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 wurden 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 der ausgeführten Anwendungen geben Sie http://localhost:8080
in einem lokalen Webbrowser ein. Die Beispielanwendung wird wie im folgenden Beispiel geladen:
Bereinigen von Ressourcen
Nachdem die Funktionalität der Anwendung überprüft wurde, können die ausgeführten Container beendet und entfernt werden. Löschen Sie die Containerimages nicht. Im nächsten Tutorial wird das Azure-Vote-Front-Image in eine Azure Container Registry instance hochgeladen.
Beenden und entfernen Sie die Containerinstanzen und -ressourcen mit dem Befehl docker-compose down:
docker-compose down
Wenn Sie die lokale Anwendung entfernen, verfügen Sie über ein Docker-Image, das die Azure Vote-Anwendung azure-vote-front enthält, die im nächsten Tutorial verwendet werden kann.
Nächste Schritte
In diesem Tutorial wurde eine Anwendung getestet und es wurden Containerimages für die Anwendung erstellt. 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
Fahren Sie mit dem nächsten Tutorial fort, und erfahren Sie, wie Containerimages in Azure Container Registry gespeichert werden.