Руководство. Подготовка приложения для AKS
Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server
В этом руководстве, часть первая из семи, многоконтейнерное приложение подготовлено для использования в кластере Kubernetes при использовании Служба Azure Kubernetes, включенных Azure Arc. Существующие средства разработки, такие как Docker Compose, используются для локальной сборки и тестирования приложения.
Вы узнаете, как выполнять следующие задачи:
- Клонирование источника примера приложения с GitHub.
- Создание образа контейнера из источника примера приложения.
- Тестирование многоконтейнерного приложения в локальной среде Docker.
После выполнения всех действий в вашей локальной среде разработки выполняется следующее приложение:
В последующих руководствах образ контейнера передается в Реестр контейнеров 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.