チュートリアル: Azure Kubernetes Service (AKS) でのアプリケーションの実行
Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 独自のアプリケーションとサービスをビルドして Kubernetes クラスターにデプロイし、クラスターで可用性と接続性を管理できるようにします。 このチュートリアル (4/7) では、サンプル アプリケーションを Kubernetes クラスターにデプロイします。 以下の方法について説明します。
- Kubernetes マニフェスト ファイルを更新する。
- Kubernetes でアプリケーションを実行する。
- アプリケーションをテストします。
以降のチュートリアルでは、アプリケーションをスケールアウトして更新します。
このクイックスタートは、Kubernetes の基本的な概念を理解していることを前提としています。 詳細については、「Azure Kubernetes Services (AKS) における Kubernetes の中心概念」を参照してください。
ヒント
AKS クラスターは、GitOps を使用して構成管理を行うことができます。 GitOPs により、ソース管理にプッシュされたクラスターの状態の宣言が、自動的にクラスターに適用されるようになります。 GitOps を使用して AKS クラスターでアプリケーションをデプロイする方法については、Flux v2 を使用した GitOps チュートリアルの Azure Kubernetes Service クラスターの前提条件に関する記事を参照してください。
開始する前に
前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、そのイメージを Azure Container Registry にアップロードして、Kubernetes クラスターを作成しました。
このチュートリアルを完了するには、事前に作成した azure-vote-all-in-one-redis.yaml
Kubernetes マニフェスト ファイルが必要です。 このファイル ダウンロードは、前のチュートリアルでは、アプリケーションのソース コードに含まれていました。 リポジトリの複製が作成されていること、およびディレクトリが複製されたリポジトリに変更されていることを確認します。 これらの手順を完了しておらず、順番に進めたい場合は、チュートリアル 1 - AKS 用のアプリケーションの準備に関する記事から始めてください。
このチュートリアルでは、Azure CLI バージョン 2.0.53 以降を実行している必要があります。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
マニフェスト ファイルを更新する
これらのチュートリアルでは、Azure Container Registry (ACR) インスタンスがサンプル アプリケーション用のコンテナー イメージを格納しています。 アプリケーションをデプロイするには、Kubernetes マニフェスト ファイル内のイメージ名を、ACR ログイン サーバー名が含まれるように更新する必要があります。
az acr list コマンドを使用して、ACR ログイン サーバー名を取得します。
az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
最初のチュートリアルで複製した git リポジトリのマニフェスト ファイルのサンプルでは、Microsoft Container Registry (mcr.microsoft.com) のイメージを使用しています。 現在の場所が、複製された azure-voting-app-redis ディレクトリ内であることを確認し、テキスト エディター (vi
など) でマニフェスト ファイルを開きます。
vi azure-vote-all-in-one-redis.yaml
mcr.microsoft.com は、実際の ACR ログイン サーバー名に置き換えてください。 マニフェスト ファイルの 60 行目にイメージ名があります。 次の例は、既定のイメージ名を示しています。
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
マニフェスト ファイルが次の例のようになるように、独自の ACR ログイン サーバー名を指定します。
containers:
- name: azure-vote-front
image: <acrName>.azurecr.io/azure-vote-front:v1
ファイルを保存して閉じます。 vi
では、:wq
を使用します。
アプリケーションの配置
アプリケーションをデプロイするには、kubectl apply
コマンドを使用して、マニフェスト ファイルのサンプルを指定します。 このコマンドは、マニフェスト ファイルを解析し、定義されている Kubernetes オブジェクトを作成します。
kubectl apply -f azure-vote-all-in-one-redis.yaml
次の出力例では、AKS クラスター内で正常に作成されたリソースが示されています。
$ kubectl apply -f azure-vote-all-in-one-redis.yaml
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
アプリケーションをテストする
アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロント エンドがインターネットに公開されます。 このプロセスが完了するまでに数分かかることがあります。
進行状況を監視するには、kubectl get service
コマンドを --watch
引数と一緒に使用します。
kubectl get service azure-vote-front --watch
最初に、azure-vote-front サービスの EXTERNAL-IP が "保留中" として表示されます。
azure-vote-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP アドレスが "保留中" から実際のパブリック IP アドレスに変わったら、CTRL-C
を使用して kubectl
ウォッチ プロセスを停止します。 次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。
azure-vote-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
アプリケーションが動作していることを確認するには、Web ブラウザーを開いてサービスの外部 IP アドレスにアクセスします。
アプリケーションが読み込まれない場合、イメージ レジストリの承認に問題がある可能性があります。 コンテナーのステータスを表示するには、kubectl get pods
コマンドを使用します。 コンテナー イメージをプルできない場合は、「Azure Kubernetes Service から Azure Container Registry の認証を受ける」を参照してください。
次のステップ
このチュートリアルでは、サンプルの Azure vote アプリケーションを AKS の Kubernetes クラスターにデプロイしました。 以下の方法を学習しました。
- Kubernetes マニフェスト ファイルを更新する。
- Kubernetes でアプリケーションを実行する。
- アプリケーションをテストします。
次のチュートリアルでは、Kubernetes アプリケーションとその基になっている Kubernetes インフラストラクチャのスケーリング方法に関して学習します。