チュートリアル: AKS 用のアプリケーションを準備する
適用対象: Azure Local 22H2 上の AKS、Windows Server 上の AKS
このチュートリアルでは、7 つのパート 1 で、Azure Arc で有効になっている Azure Kubernetes Service を使用している場合に、Kubernetes クラスターでマルチコンテナー アプリケーションを使用できるように準備されています。Docker Compose などの既存の開発ツールは、アプリケーションをローカルでビルドしてテストするために使用されます。
次の方法について学習します。
- GitHub からサンプル アプリケーション ソースを複製する
- サンプル アプリケーション ソースからコンテナー イメージを作成する
- ローカル Docker 環境でマルチコンテナー アプリケーションをテストする
完了すると、次のアプリケーションがローカル開発環境で実行されます。
後のチュートリアルでは、コンテナー イメージが Azure Container Registry にアップロードされ、Kubernetes クラスターにデプロイされます。
開始する前に
このチュートリアルでは、コンテナー、コンテナー イメージ、docker
コマンドなどの Docker の主要な概念を基本的に理解していることを前提としています。 コンテナーの基本に関する入門情報については、「Dockerの概要」を参照してください。
このチュートリアルを完了するには、Linux コンテナーを実行するローカル Docker 開発環境が必要です。 Docker には、Windowsで Docker を構成するパッケージが用意されています。
手記
AKS には、これらのチュートリアルのすべての手順を完了するために必要な Docker コンポーネントは含まれていません。 そのため、完全な 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 コマンドを使用して、作成されたイメージを確認します。 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 イメージ
docker-compose down コマンドを使用して、コンテナー インスタンスとリソースを停止して削除します。
docker-compose down
ローカル アプリケーションを削除すると、次のチュートリアルで使用するために、azure-vote-front
次の手順
このチュートリアルでは、アプリケーションをテストし、アプリケーション用にコンテナー イメージを作成しました。 次の方法について学習しました。
- GitHub からサンプル アプリケーション ソースを複製する
- サンプル アプリケーション ソースからコンテナー イメージを作成する
- ローカル Docker 環境でマルチコンテナー アプリケーションをテストする
次のチュートリアルに進み、Azure Container Registry にコンテナー イメージを格納する方法について説明します。
Azure Container Registry へのイメージのプッシュ