Samouczek: przygotowywanie aplikacji na potrzeby usługi Azure Kubernetes Service (AKS)

W tym samouczku, część 1 z siedmiu, przygotujesz aplikację z wieloma kontenerami do użycia w usłudze Kubernetes. Istniejące narzędzia programistyczne, takie jak Docker Compose, służą do lokalnego kompilowania i testowania aplikacji. Omawiane kwestie:

  • Klonowanie źródła przykładowej aplikacji z usługi GitHub
  • Tworzenie obrazu kontenera ze źródła przykładowej aplikacji
  • Testowanie aplikacji z wieloma kontenerami w lokalnym środowisku platformy Docker

Po zakończeniu następująca aplikacja będzie uruchomiona w lokalnym środowisku programistycznym:

Zrzut ekranu przedstawiający obraz kontenera aplikacja do głosowania platformy Azure uruchomiona lokalnie w lokalnej przeglądarce internetowej

W kolejnych samouczkach przekażesz obraz kontenera do Azure Container Registry (ACR), a następnie wdrożysz go w klastrze usługi AKS.

Zanim rozpoczniesz

Ten samouczek zakłada, że masz podstawową wiedzę na temat najważniejszych pojęć dotyczących platformy Docker, takich jak kontenery, obrazy kontenerów i polecenia docker. Aby uzyskać podstawowe informacje na temat kontenerów, zapoznaj się z tematem Get started with Docker (Rozpoczynanie pracy z platformą Docker).

Do ukończenia tego samouczka konieczne będzie lokalne środowisko programistyczne platformy Docker z działającymi kontenerami systemu Linux. Środowisko Docker zawiera pakiety, które umożliwiają konfigurowanie platformy Docker w systemie Mac, Windows lub Linux.

Uwaga

Usługa Azure Cloud Shell nie zawiera składników platformy Docker wymaganych do ukończenia każdego kroku w tych samouczkach. Dlatego zalecamy używanie pełnego środowiska programistycznego usługi Docker.

Pobieranie kodu aplikacji

Przykładowa aplikacja używana w tym samouczku to podstawowa aplikacja do głosowania składająca się ze składnika internetowego frontonu i wystąpienia usługi Redis zaplecza. Składnik internetowy znajduje się w pakiecie niestandardowego obrazu kontenera. Wystąpienie usługi Redis używa niezmodyfikowanego obrazu z usługi Docker Hub.

Użyj narzędzia git , aby sklonować przykładową aplikację do środowiska projektowego.

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

Przejdź do sklonowanego katalogu.

cd azure-voting-app-redis

Katalog zawiera kod źródłowy aplikacji, wstępnie utworzony plik docker compose i plik manifestu kubernetes. Te pliki są używane w całym zestawie samouczków. Zawartość i struktura katalogu są następujące:

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

Tworzenie obrazów kontenerów

Narzędzie Docker Compose umożliwia automatyzowanie tworzenia obrazów kontenerów i wdrażanie aplikacji z wieloma kontenerami.

Następujące polecenie używa przykładowego docker-compose.yaml pliku do utworzenia obrazu kontenera, pobrania obrazu usługi Redis i uruchomienia aplikacji.

docker-compose up -d

Po zakończeniu docker images użyj polecenia , aby wyświetlić utworzone obrazy. Trzy obrazy są pobierane lub tworzone. Obraz azure-vote-front zawiera aplikację frontonu i używa obrazu nginx-flask jako podstawy. Obraz redis służy do uruchamiania wystąpienia usługi 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

Uruchom polecenie , docker ps aby wyświetlić uruchomione kontenery.

$ 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

Testowanie aplikacji w środowisku lokalnym

Aby wyświetlić uruchomioną aplikację, przejdź do http://localhost:8080 w lokalnej przeglądarce internetowej. Zostanie załadowana przykładowa aplikacja, jak pokazano w poniższym przykładzie:

Zrzut ekranu przedstawiający obraz kontenera aplikacja do głosowania platformy Azure uruchomiona lokalnie w lokalnej przeglądarce internetowej

Czyszczenie zasobów

Teraz, po zweryfikowaniu funkcjonalności aplikacji, uruchomione kontenery można zatrzymać i usunąć. Nie usuwaj obrazów kontenerów — w następnym samouczku przekażesz obraz azure-vote-front do wystąpienia usługi ACR.

Aby zatrzymać i usunąć wystąpienia kontenera i zasoby, użyj docker-compose down polecenia .

docker-compose down

Po usunięciu aplikacji lokalnej masz obraz platformy Docker zawierający aplikację Azure Vote azure-vote-front do użycia w następnym samouczku.

Następne kroki

W tym samouczku utworzono przykładową aplikację, utworzono obrazy kontenerów dla aplikacji, a następnie przetestowano aplikację. W tym samouczku omówiono:

  • Klonowanie źródła przykładowej aplikacji z usługi GitHub
  • Tworzenie obrazu kontenera ze źródła przykładowej aplikacji
  • Testowanie aplikacji z wieloma kontenerami w lokalnym środowisku platformy Docker

W następnym samouczku dowiesz się, jak przechowywać obrazy kontenerów w usłudze ACR.