次の方法で共有


チュートリアル: Azure Kubernetes Service (AKS) にアプリケーションをデプロイする

Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 独自のアプリケーションとサービスをビルドして Kubernetes クラスターにデプロイし、クラスターで可用性と接続性を管理できるようにします。

このチュートリアル (4/7) では、サンプル アプリケーションを Kubernetes クラスターにデプロイします。 以下の方法について説明します。

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

ヒント

AKS では、構成管理に次の方法を使用できます。

開始する前に

前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、そのイメージを Azure Container Registry にアップロードして、Kubernetes クラスターを作成しました。 このチュートリアルを完了するには、事前に作成した aks-store-quickstart.yaml Kubernetes マニフェスト ファイルが必要です。 このファイルは、「チュートリアル 1 - AKS 用のアプリケーションの準備」からアプリケーションのソース コードにダウンロードされました。

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

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

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

  1. az acr list コマンドを使用してログイン サーバーのアドレスを取得し、ログイン サーバーのクエリを実行します。

    az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
    
  2. クローンされた aks-store-demo ディレクトリ内にいることを確認し、テキスト エディターで aks-store-quickstart.yaml マニフェスト ファイルを開きます。

  3. 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
    ...
    
  4. ファイルを保存して閉じます。

アプリケーションの実行

  1. kubectl apply コマンドを使用してアプリケーションをデプロイします。これにより、マニフェスト ファイルが解析され、定義された Kubernetes オブジェクトが作成されます。

    kubectl apply -f aks-store-quickstart.yaml
    

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

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins 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
    
  2. kubectl でポッドを表示して、デプロイが成功したことを確認します

    kubectl get pods
    

アプリケーションをテストする

アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロント エンドがインターネットに公開されます。 このプロセスが完了するまでに数分かかることがあります。

コマンド ライン

  1. kubectl get service コマンドと --watch 引数を使用して、進行状況を監視します。

    kubectl get service store-front --watch
    

    最初は、store-front サービスの EXTERNAL-IP<pending> として表示されます。

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. EXTERNAL-IP アドレスが <pending> からパブリック IP アドレスに変わったら、CTRL-C を使用して kubectl 監視プロセスを停止します。

    次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. Web ブラウザーを開いてサービスの外部 IP アドレス http://<external-ip> に移動し、アプリケーションの動作を確認します。

    AKS Store サンプル アプリケーションのスクリーンショット。

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

Azure portal

Azure portal に移動してデプロイ情報を見つけます。

  1. AKS クラスター リソースに移動します。

  2. サービス メニューの [Kubernetes リソース] で、[サービスとイングレス] を選択します。

  3. store-front サービスの列に表示されている外部 IP をコピーします。

  4. IP をブラウザーに貼り付け、ストア ページにアクセスします。

    AKS Store サンプル アプリケーションのスクリーンショット。

リソースをクリーンアップする

アプリケーションの機能を検証したので、アプリケーションからクラスターを削除できるようになりました。 次のチュートリアルでは、アプリケーションを再度デプロイします。

  1. kubectl delete コマンドを使用して、コンテナー インスタンスとリソースを停止して削除します。

    kubectl delete -f aks-store-quickstart.yaml
    
  2. kubectl get pods コマンドを使用して、すべてのアプリケーション ポッドが削除されていることを確認します。

    kubectl get pods
    

次のステップ

このチュートリアルでは、サンプルの Azure アプリケーションを AKS の Kubernetes クラスターにデプロイしました。 以下の方法を学習しました。

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

次のチュートリアルでは、Kubernetes のステートフル ワークロードに PaaS サービスを使用する方法について説明します。