チュートリアル: Azure Kubernetes Service (AKS) 用のアプリケーションの準備Tutorial: Prepare application for Azure Kubernetes Service (AKS)

このチュートリアルは、7 つあるうちの 1 番目で、複数コンテナー アプリケーションを Kubernetes で使用する準備をします。In this tutorial, part one of seven, a multi-container application is prepared for use in Kubernetes. 手順は次のとおりです。Steps completed include:

  • GitHub からアプリケーション ソースを複製するCloning application source from GitHub
  • アプリケーション ソースからコンテナー イメージを作成するCreating a container image from the application source
  • ローカル Docker 環境でアプリケーションをテストするTesting the application in a local Docker environment

完了後、次のアプリケーションにローカル開発環境からアクセスできます。Once completed, the following application is accessible in your local development environment.

Azure 上の Kubernetes クラスターの図

この後のチュートリアルでは、このコンテナ イメージが Azure Container Registry にアップロードされ、AKS クラスターで実行されます。In subsequent tutorials, the container image is uploaded to an Azure Container Registry, and then run in an AKS cluster.

開始する前にBefore you begin

このチュートリアルの前提として、コンテナー、コンテナー イメージ、基本 Docker コマンドなど、Docker のコア概念を基本的に理解している必要があります。This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and basic docker commands. 必要な場合は、Docker の入門に関するドキュメントでコンテナーの基礎を参照してください。If needed, see Get started with Docker for a primer on container basics.

このチュートリアルを完了するには、Docker 開発環境が必要です。To complete this tutorial, you need a Docker development environment. Docker では、MacWindows、または Linux システムで Docker を簡単に構成できるパッケージが提供されています。Docker provides packages that easily configure Docker on any Mac, Windows, or Linux system.

Azure Cloud Shell には、このチュートリアルの各ステップを完了するのに必要な Docker コンポーネントがすべて含まれているわけではありません。Azure Cloud Shell does not include the Docker components required to complete every step this tutorial. そのため、完全な Docker 開発環境の使用をお勧めします。Therefore, we recommend using a full Docker development environment.

アプリケーションのコードを入手するGet application code

このチュートリアルで使うサンプル アプリケーションは、基本的な投票アプリです。The sample application used in this tutorial is a basic voting app. アプリケーションは、フロントエンド Web コンポーネントとバックエンド Redis インスタンスで構成されています。The application consists of a front-end web component and a back-end Redis instance. Web コンポーネントは、カスタム コンテナー イメージにパッケージ化されています。The web component is packaged into a custom container image. Redis インスタンスでは、Docker Hub から変更されていないイメージを使用します。The Redis instance uses an unmodified image from Docker Hub.

アプリケーションのコピーを開発環境にダウンロードするには、git を使います。Use git to download a copy of the application to your development environment.

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

ディレクトリを変更して、複製されたディレクトリから作業するようにします。Change directories so that you are working from the cloned directory.

cd azure-voting-app-redis

ディレクトリ内には、アプリケーションのソース コード、事前作成された Docker Compose ファイル、および Kubernetes マニフェスト ファイルがあります。Inside the directory is the application source code, a pre-created Docker compose file, and a Kubernetes manifest file. これらのファイルは、チュートリアル セット全体で使用されます。These files are used throughout the tutorial set.

コンテナー イメージを作成するCreate container images

Docker Compose は、コンテナー イメージと複数のコンテナー アプリケーションのデプロイからのビルドを自動化するために使用できます。Docker Compose can be used to automate the build out of container images and the deployment of multi-container applications.

コンテナー イメージの作成、Redis イメージのダウンロード、およびアプリケーションの起動を行うために、docker-compose.yaml ファイルを実行します。Run the docker-compose.yaml file to create the container image, download the Redis image, and start the application.

docker-compose up -d

完了したら、docker images コマンドを使って、作成されたイメージを確認します。When completed, use the docker images command to see the created images.

docker images

3 つのイメージがダウンロードまたは作成されたことに注目してください。Notice that three images have been downloaded or created. azure-vote-front イメージはアプリケーションを含み、nginx-flask イメージをベースとして使用します。The azure-vote-front image contains the application and uses the nginx-flask image as a base. redis イメージは、Redis インスタンスを起動するために使用されます。The redis image is used to start a Redis instance.

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

docker ps コマンドを実行して、実行中のコンテナーを確認します。Run the docker ps command to see the running containers.

docker ps

出力:Output:

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

ローカルでアプリケーションをテストするTest application locally

実行中のアプリケーションを探すには、http://localhost:8080 を参照します。Browse to http://localhost:8080 to see the running application.

Azure 上の Kubernetes クラスターの図

リソースのクリーンアップClean up resources

アプリケーションの機能を検証したので、実行中のコンテナーを停止して削除できます。Now that application functionality has been validated, the running containers can be stopped and removed. コンテナー イメージは削除しないでください。Do not delete the container images. azure-vote-front イメージは、次のチュートリアルで Azure Container Registry インスタンスにアップロードされます。The azure-vote-front image is uploaded to an Azure Container Registry instance in the next tutorial.

実行中のコンテナーを停止するには、次を実行します。Run the following to stop the running containers.

docker-compose stop

次のコマンドで、停止しているコンテナーとリソースを削除します。Delete the stopped containers and resources with the following command.

docker-compose down

完了すると、Azure Vote アプリケーションを含むコンテナー イメージが完成します。At completion, you have a container image that contains the Azure Vote application.

次の手順Next steps

このチュートリアルでは、アプリケーションをテストし、アプリケーション用のコンテナー イメージを作成しました。In this tutorial, an application was tested and container images created for the application. 次の手順を完了しました。The following steps were completed:

  • GitHub からアプリケーション ソースを複製するCloning the application source from GitHub
  • アプリケーション ソースからコンテナー イメージを作成するCreated a container image from application source
  • ローカル Docker 環境でアプリケーションアプリケーションをテストするTested the application in a local Docker environment

次のチュートリアルでは、Azure Container Registry にコンテナー イメージを格納する方法について学習します。Advance to the next tutorial to learn about storing container images in an Azure Container Registry.