Руководство. Подготовка приложения для AKS

Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server

В этом руководстве, часть первая из семи, многоконтейнерное приложение подготовлено для использования в кластере Kubernetes при использовании Служба Azure Kubernetes, включенных Azure Arc. Существующие средства разработки, такие как Docker Compose, используются для локальной сборки и тестирования приложения.

Вы узнаете, как выполнять следующие задачи:

  • Клонирование источника примера приложения с GitHub.
  • Создание образа контейнера из источника примера приложения.
  • Тестирование многоконтейнерного приложения в локальной среде Docker.

После выполнения всех действий в вашей локальной среде разработки выполняется следующее приложение:

Снимок экрана: образ контейнера, который приложение Azure для голосования, запущенное локально, открыто в локальном веб-браузере.

В последующих руководствах образ контейнера передается в Реестр контейнеров Azure, а затем развертывается в кластере Kubernetes.

Перед началом

Для выполнения действий, описанных в этом руководстве, необходимо базовое понимание основных понятий Docker, таких как контейнеры, образы контейнеров и команды docker. Руководство по началу работы с Docker содержит базовые сведения о контейнерах.

Для работы с этим руководством требуется локальная среда разработки Docker для выполнения контейнеров Linux. Docker предоставляет пакеты, которые настраивают Docker в Windows.

Примечание

AKS не включает компоненты Docker, необходимые для выполнения каждого шага в этих руководствах. Таким образом мы рекомендуем полную среду разработки Docker.

Получение кода приложения

Используемый в этом руководстве пример приложения — это базовое приложение для голосования, состоящее из интерфейсного веб-компонента и экземпляра серверной части Redis. Веб-компонент упаковывается в пользовательский образ контейнера, а для экземпляра Redis используется неизмененный образ из Docker Hub.

Используйте GitHub для клонирования примера приложения в среду разработки:

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

Перейдите в клонированную папку:

cd azure-voting-app-redis

Внутри каталога содержится исходный код приложения, предварительно созданный файл Docker Compose и файл манифеста Kubernetes. Эти файлы используются в руководстве. Содержимое и структура каталога следующие:

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

Создание образов контейнеров

Docker Compose можно использовать для автоматизации создания образов контейнеров и развертывания многоконтейнерных приложений.

Используйте пример файла docker-compose.yaml, чтобы создать образ контейнера, скачать образ Redis и запустить приложение:

docker-compose up -d

После завершения выполните команду docker images, чтобы увидеть созданные образы. Были загружены или созданы три образа. Образ azure-vote-front содержит интерфейсное приложение и использует образ nginx-flask в качестве основы. Образ redis используется для запуска экземпляра 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

Выполните команду docker ps, чтобы просмотреть выполняемые контейнеры:

$ 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

Локальное тестирование приложения

Чтобы увидеть работающее приложение, введите http://localhost:8080 в локальном веб-браузере. Нагрузки примера приложения, как показано в следующем примере:

Снимок экрана: образ контейнера, открытый в локальном веб-браузере.

Очистка ресурсов

Теперь, когда функциональность приложения проверена, запущенные контейнеры можно остановить и удалить. Не удаляйте образы контейнеров. В следующем руководстве образ azure-vote-front будет отправлен в экземпляр Реестр контейнеров Azure.

Остановите и удалите экземпляры контейнеров и ресурсы с помощью команды docker-compose down:

docker-compose down

При удалении локального приложения у вас будет образ Docker, содержащий приложение azure-vote-front, которое будет использоваться в следующем руководстве.

Дальнейшие действия

В этом руководстве вы протестировали приложение и создали для него образы контейнеров. Вы ознакомились с выполнением следующих задач:

  • Клонирование источника примера приложения с GitHub.
  • Создание образа контейнера из источника примера приложения.
  • Тестирование многоконтейнерного приложения в локальной среде Docker.

Переходите к следующему руководству, чтобы узнать о том, как хранить образы контейнеров в Реестре контейнеров Azure.