教程:为 AKS 准备应用程序

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

在本教程的第一部分(共 7 部分)中,当使用由 Azure Arc 启用的 Azure Kubernetes 服务时,多容器应用程序已准备好在 Kubernetes 群集上使用。Docker Compose 等现有开发工具用于本地生成和测试应用程序。

学习如何:

  • 克隆 GitHub 中的示例应用程序源
  • 根据示例应用程序源创建容器映像
  • 在本地 Docker 环境中测试多容器应用程序

完成后,以下应用程序会在本地开发环境中运行:

显示在本地 Web 浏览器中本地运行的 Azure 投票应用打开的容器映像的屏幕截图。

在后面的教程中,容器映像将上传到Azure 容器注册表,然后部署到 Kubernetes 群集中。

开始之前

本教程假定你基本了解核心 Docker 概念,如容器、容器映像和 docker 命令。 有关容器的入门基础知识,请参阅 Docker 入门

若要完成本教程,需要运行 Linux 容器的本地 Docker 开发环境。 Docker 提供的包可在 Windows 上配置 Docker。

注意

AKS 不包括完成这些教程中的每个步骤所需的 Docker 组件。 因此,我们建议使用完整的 Docker 开发环境。

获取应用程序代码

本教程中使用的示例应用程序是一个包含前端 Web 组件和后端 Redis 实例的基本投票应用。 Web 组件打包到自定义容器映像中。 Redis 实例使用 Docker 中心提供的未修改的映像。

使用 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

在本地测试应用程序

若要查看正在运行的应用程序,请在本地 Web 浏览器中输入 http://localhost:8080。 示例应用程序会加载,如以下示例所示:

显示在本地 Web 浏览器中打开的容器映像的屏幕截图。

清理资源

验证应用程序的功能后,可以停止并删除正在运行的容器。 请勿删除容器映像 - 在下一教程中,azure-vote-front 映像将上传到 Azure 容器注册表 实例。

使用 docker-compose down 命令停止并删除容器实例和资源:

docker-compose down

删除本地应用程序时,会有一个 Docker 映像,其中包含 Azure Vote 应用程序 azure-vote-front,供下一教程使用。

后续步骤

本教程测试了应用程序并针对应用程序创建了容器映像。 你已了解如何执行以下操作:

  • 克隆 GitHub 中的示例应用程序源
  • 根据示例应用程序源创建容器映像
  • 在本地 Docker 环境中测试多容器应用程序

请转到下一教程,了解如何在 Azure 容器注册表中存储容器映像。