チュートリアル: Azure Arc で有効になっている AKS にアプリケーションをデプロイする
適用対象: Azure Local 22H2 上の AKS、Windows Server 上の AKS
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のログイン サーバー名
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
azure-vote-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
アプリケーションの動作を確認するには、サービスの外部 IP アドレスに対して Web ブラウザーを開きます。
で開かれた AKS クラスターで実行されている Azure Voting App のコンテナー イメージを示すスクリーンショット
アプリケーションが読み込まれていない場合は、イメージ レジストリの承認の問題が原因である可能性があります。 コンテナーの状態を表示するには、kubectl get pods
コマンドを使用します。 コンテナー イメージをプルできない場合は、Azure Kubernetes Service から Azure Container Registry を使用して認証する方法について を参照してください。
次の手順
このチュートリアルでは、Arc で有効になっている AKS の Kubernetes クラスターにサンプル Azure 投票アプリケーションをデプロイしました。次の方法について学習しました。
- Kubernetes マニフェスト ファイルを更新する
- Kubernetes でアプリケーションを実行する
- アプリケーションをテストする
次のチュートリアルに進み、Kubernetes アプリケーションと基になる Kubernetes インフラストラクチャをスケーリングする方法について説明します。