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:

Screenshot: Lokale Ausführung der Azure-Abstimmungs-App mit dem Containerimage, geöffnet in einem lokalen Webbrowser

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:

Screenshot: Lokale Ausführung der Azure-Abstimmungs-App mit dem Containerimage, geöffnet in einem lokalen Webbrowser

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.