チュートリアル: AKS 用のアプリケーションを準備する
適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server
このチュートリアルでは、Azure Arc で有効にAzure Kubernetes Serviceを使用している場合に、Kubernetes クラスターでマルチコンテナー アプリケーションを使用できるように、パート 7 のパート 1 を準備します。Docker Compose などの既存の開発ツールは、アプリケーションをローカルでビルドしてテストするために使用されます。
学習内容は次のとおりです。
- GitHub からサンプル アプリケーション ソースを複製する
- サンプル アプリケーション ソースからコンテナー イメージを作成する
- ローカル Docker 環境で複数コンテナー アプリケーションをテストする
完了後、次のアプリケーションがローカル開発環境で実行されます。
以降のチュートリアルでは、コンテナー イメージがAzure Container Registryにアップロードされ、Kubernetes クラスターにデプロイされます。
開始する前に
このチュートリアルの前提として、コンテナー、コンテナー イメージ、docker
コマンドなど、Docker のコア概念を基本的に理解している必要があります。
Docker の入門に関するドキュメントでコンテナーの基礎についての入門情報を参照してください。
このチュートリアルを完了するには、Linux コンテナーを実行するローカルの Docker 開発環境が必要です。 Docker では、Windows で Docker を構成するパッケージが提供されています。
Note
AKS には、これらのチュートリアルのすべての手順を完了するために必要な Docker コンポーネントは含まれていません。 そのため、完全な Docker 開発環境の使用をお勧めします。
アプリケーションのコードを入手する
このチュートリアルで使用するサンプル アプリケーションは、フロントエンド Web コンポーネントとバックエンド Redis インスタンスで構成される基本的な投票アプリです。 Web コンポーネントは、カスタム コンテナー イメージにパッケージ化されています。 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 を使用して、コンテナー イメージの構築とマルチコンテナー アプリケーションのデプロイを自動化できます。
コンテナー イメージの作成、Redis イメージのダウンロード、およびアプリケーションの起動を行うために、docker-compose.yaml
サンプル ファイルを実行します。
docker-compose up -d
完了したら、docker images コマンドを使って、作成されたイメージを確認します。 3 つのイメージがダウンロードまたは作成されました。 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
」と入力します。 次の例で示すように、サンプル アプリケーションが読み込まれます。
リソースをクリーンアップする
アプリケーションの機能が検証されたので、実行中のコンテナーを停止および削除できます。 コンテナー イメージを削除しないでください。次のチュートリアルでは、azure-vote-front イメージがAzure Container Registry インスタンスにアップロードされます。
docker-compose down コマンドを使用して、コンテナー インスタンスとリソースを停止して削除します。
docker-compose down
ローカル アプリケーションを削除すると、次のチュートリアルで使用する Azure Vote アプリケーション (azure-vote-front) を含む Docker イメージが作成されます。
次のステップ
このチュートリアルでは、アプリケーションをテストし、アプリケーション用のコンテナー イメージを作成しました。 以下の方法を学習しました。
- GitHub からサンプル アプリケーション ソースを複製する
- サンプル アプリケーション ソースからコンテナー イメージを作成する
- ローカル Docker 環境で複数コンテナー アプリケーションをテストする
次のチュートリアルでは、Azure Container Registry にコンテナー イメージを格納する方法について学習します。