チュートリアル: Azure Arc で有効になっている AKS にアプリケーションをデプロイする

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

Azure Arc で有効になっているAzure Kubernetes Serviceを使用している場合は、独自のアプリとサービスを構築して Kubernetes クラスターにデプロイできます。Kubernetes は、コンテナー化されたアプリ用の分散プラットフォームを提供します。 クラスターの可用性と接続性を管理することができます。

このチュートリアル (パート 4/7) では、AKS の Kubernetes クラスターにサンプル アプリケーションをデプロイする方法について説明します。 学習内容は次のとおりです。

  • Kubernetes マニフェスト ファイルを更新する
  • Kubernetes でのアプリケーションのデプロイ
  • アプリケーションをテストする

以降のチュートリアルでは、このアプリケーションをスケーリングおよび更新する方法について説明します。

このクイックスタートは、Kubernetes の基本的な概念を理解していることを前提としています。

開始する前に

前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、そのイメージをAzure Container Registryにアップロードし、Kubernetes クラスターを作成する方法について説明しました。

このチュートリアルを完了するには、事前に作成された azure-vote-all-in-one-redis.yaml Kubernetes マニフェスト ファイルが必要です。 このファイルは、前のチュートリアルでは、アプリケーションのソース コードと共にダウンロードされました。 リポジトリを複製し、複製したリポジトリにディレクトリを変更したことを確認します。 これらの手順を行っていない場合は、「 チュートリアル 1 - コンテナー イメージを作成する」から始めます。

このチュートリアルには、Azure CLI バージョン 2.0.53 以降が必要です。 バージョンを確認するには、az --version を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。

マニフェスト ファイルを更新する

これらのチュートリアルでは、Azure Container Registry インスタンスによってサンプル アプリケーションのコンテナー イメージが格納されます。 アプリケーションをデプロイするには、Kubernetes マニフェスト ファイル内のイメージ名を更新して、コンテナー レジストリ ログイン サーバー名を含める必要があります。

az acr list コマンドを使用して、次のようにAzure Container Registryログイン サーバー名を取得します。

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

最初のチュートリアルで複製した GitHub リポジトリのサンプル マニフェスト ファイルでは、microsoft のログイン サーバー名を使用 します。 複製した azure-voting-app-redis ディレクトリにいることを確認し、メモ帳などのテキスト エディターでマニフェスト ファイルを開きます。

notepad azure-vote-all-in-one-redis.yaml

microsoft をAzure Container Registryログイン サーバー名に置き換えます。 イメージ名は、マニフェスト ファイルの 60 行目にあります。 次の例は、既定のイメージ名を示しています。

containers:
- name: azure-vote-front
  image: mcr.microsoft.com/azuredocs/azure-vote-front:v1

マニフェスト ファイルが次の例のようになるように、独自のAzure Container Registryログイン サーバー名を指定します。

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

ファイルを保存して閉じます。

アプリケーションの配置

ご利用になるアプリケーションをデプロイするには、kubectl apply コマンドを使用します。 このコマンドは、マニフェスト ファイルを解析し、定義されている Kubernetes オブジェクトを作成します。 次の例に示すように、サンプルのマニフェスト ファイルを指定します。

kubectl apply -f azure-vote-all-in-one-redis.yaml

次の出力例は、Kubernetes クラスターで正常に作成されたリソースを示しています。

$ 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 キーを押して、watch プロセスをkubectl停止します。 次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

アプリケーションが動作していることを確認するには、Web ブラウザーを開いてサービスの外部 IP アドレスにアクセスします。

ローカル Web ブラウザーで開かれた、AKS クラスターで実行されている Azure 投票アプリのコンテナー イメージを示すスクリーンショット

アプリケーションが読み込まれなかった場合、イメージ レジストリに関する承認の問題が原因になっている可能性があります。 コンテナーのステータスを表示するには、kubectl get pods コマンドを使用します。 コンテナー イメージがプルできない場合は、「Azure Kubernetes Service から Azure Container Registry の認証を受ける」を参照してください。

次のステップ

このチュートリアルでは、Arc で有効になっている AKS の Kubernetes クラスターにサンプル Azure 投票アプリケーションをデプロイしました。次の方法を学習しました。

  • Kubernetes マニフェスト ファイルを更新する
  • Kubernetes でアプリケーションを実行する
  • アプリケーションをテストする

次のチュートリアルに進んで、Kubernetes アプリケーションとその基になっている Kubernetes インフラストラクチャのスケーリング方法に関して学習してください。