Freigeben über


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:

Screenshot des Containerbilds, das die lokal ausgeführte Azure Voting-App in einem lokalen Webbrowser geöffnet hat.

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:

Screenshot: Containerbild, das in einem lokalen Webbrowser geöffnet wurde

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.