チュートリアル: Azure Kubernetes Service (AKS) にアプリケーションをデプロイする
Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 独自のアプリケーションとサービスをビルドして Kubernetes クラスターにデプロイし、クラスターで可用性と接続性を管理できるようにします。
このチュートリアル (4/7) では、サンプル アプリケーションを Kubernetes クラスターにデプロイします。 以下の方法について説明します。
- Kubernetes マニフェスト ファイルを更新する。
- Kubernetes でアプリケーションを実行する。
- アプリケーションをテストします。
ヒント
AKS では、構成管理に次の方法を使用できます。
GitOps: クラスターの状態の宣言をクラスターに自動的に適用できるようになります。 GitOps を使用して AKS クラスターでアプリケーションをデプロイする方法については、Flux v2 を使用した GitOps チュートリアルの Azure Kubernetes Service クラスターの前提条件に関する記事を参照してください。
DevOps: 継続的インテグレーション (CI) と継続的デリバリー (CD) でビルド、テスト、およびデプロイを行うことができます。 DevOps を使用して AKS クラスターでアプリケーションをデプロイする方法の例については、「Azure Pipelines を使用して AKS にビルドしてデプロイする」または「Kubernetes にデプロイするための GitHub Actions」を参照してください。
開始する前に
前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、そのイメージを Azure Container Registry にアップロードして、Kubernetes クラスターを作成しました。 このチュートリアルを完了するには、事前に作成した aks-store-quickstart.yaml
Kubernetes マニフェスト ファイルが必要です。 このファイル ダウンロードは、前のチュートリアルでは、アプリケーションのソース コードに含まれていました。 リポジトリのクローンが作成されていること、およびディレクトリがクローンされたリポジトリに変更されていることを確認します。 これらのステップを完了しておらず、順番に進めたい場合は、「チュートリアル 1 - AKS 用のアプリケーションを準備する」から始めます。
このチュートリアルには、Azure CLI バージョン 2.34.1 以降が必要です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
マニフェスト ファイルを更新する
これらのチュートリアルでは、Azure Container Registry (ACR) インスタンスがサンプル アプリケーション用のコンテナー イメージを格納しています。 アプリケーションをデプロイするには、Kubernetes マニフェスト ファイル内のイメージ名を、ACR ログイン サーバー名が含まれるように更新する必要があります。
az acr list
コマンドを使用してログイン サーバーのアドレスを取得し、ログイン サーバーのクエリを実行します。az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
クローンされた aks-store-demo ディレクトリ内にいることを確認し、テキスト エディター (
vi
など) でマニフェスト ファイルを開きます。vi aks-store-quickstart.yaml
ghcr.io/azure-samples を ACR ログイン サーバー名に置き換えて、コンテナーの
image
プロパティを更新します。containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
ファイルを保存して閉じます。
vi
では、:wq
を使用します。
アプリケーションの配置
kubectl apply
コマンドを使用してアプリケーションをデプロイします。これにより、マニフェスト ファイルが解析され、定義された Kubernetes オブジェクトが作成されます。kubectl apply -f aks-store-quickstart.yaml
次の出力例では、AKS クラスター内で正常に作成されたリソースが示されています。
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
アプリケーションをテストする
アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロント エンドがインターネットに公開されます。 このプロセスが完了するまでに数分かかることがあります。
kubectl get service
コマンドと--watch
引数を使用して、進行状況を監視します。kubectl get service store-front --watch
最初に、ストア フロント サービスの
EXTERNAL-IP
は、保留中として表示されます。store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
アドレスが "保留中" から実際のパブリック IP アドレスに変わったら、CTRL-C
を使ってkubectl
ウォッチ プロセスを停止します。次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。
store-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 アプリケーションを AKS の Kubernetes クラスターにデプロイしました。 以下の方法を学習しました。
- Kubernetes マニフェスト ファイルを更新する。
- Kubernetes でアプリケーションを実行する。
- アプリケーションをテストします。
次のチュートリアルでは、Kubernetes のステートフル ワークロードに PaaS サービスを使用する方法について説明します。