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

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

サンプル アプリケーションは、次の 2 つの方法でデプロイできます。

このチュートリアルでは、ワークステーションから直接 Kubernetes クラスターにサンプル アプリケーションをデプロイし、 AKS デスクトップを使用してアプリケーションを管理します。 次の方法を学びます:

  • Kubernetes マニフェスト ファイルを更新する。
  • Kubernetes にアプリケーションをデプロイします。
  • アプリケーションをテストします。
  • AKS デスクトップでアプリケーションの正常性、ログ、メトリック、および構成を表示します。

開始する前に

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

このチュートリアルでは、LoadBalancer サービスなどの課金対象リソースを作成および更新します。 アクセス許可を持つ ID を使用して、ワークロードを AKS にデプロイし、クラスター リソースを読み取ります。

このチュートリアルでは、 AKS デスクトップをインストールする必要があります。

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

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

  1. クローンされた aks-store-demo ディレクトリ内にいることを確認し、テキスト エディターで aks-store-quickstart.yaml マニフェスト ファイルを開きます。

  2. image を ACR ログイン サーバー名に置き換えて、コンテナーの プロパティを更新します。

    containers:
    ...
    - name: order-service
      image: <acrName>.azurecr.io/aks-store-demo/order-service:1.0
    ...
    - name: product-service
      image: <acrName>.azurecr.io/aks-store-demo/product-service:1.0
    ...
    - name: store-front
      image: <acrName>.azurecr.io/aks-store-demo/store-front:1.0
    ...
    

アプリケーションの実行

AKS デスクトップを使用してアプリケーションをデプロイおよび管理する

AKS デスクトップは、Kubernetes の高度な専門知識を必要とせずにアプリケーションのデプロイと管理を簡素化する、Azure Kubernetes Service (AKS)用のアプリケーションに重点を置いた開発者ポータルです。

クラスターを AKS デスクトップに登録する

  1. AKS クラスターにアクセスできるのと同じアカウントで AKS デスクトップにサインインしていることを確認します。 サインインしたら、[ Azure サブスクリプションから追加] を選択します。
  2. 複数ある場合は、Azure サブスクリプションの名前を入力します。 (または、矢印を選択してドロップダウン リストを開き、Azure サブスクリプションを選択します)。
  3. クラスターを選択し、[クラスターの 登録] を選択します。

クラスターの状態が AKS デスクトップで接続済みとして表示されたら続行します。

AKS デスクトップ アプリにクラスターを追加する方法を示すビデオ。

AKS デスクトップでマネージド プロジェクトを作成する

  1. AKS デスクトップで、[プロジェクト] タブに移動し、[新しいマネージド Projectの作成] を選択します。

  2. 次のプロジェクト設定を構成します。

    • 基本:
      • プロジェクト名: 次に例を示します。 my-dev-frontend
      • サブスクリプション: <your-subscription-name>
      • クラスター: <your-cluster-name>

    Note

    Azure サブスクリプションと AKS クラスターを設定すると、AKS デスクトップは、必要なクラスターとサブスクリプション機能のサポートを確認します。

    • ネットワーク ポリシー: このクイック スタートの既定の設定をそのままにするか、必要に応じて更新することができます。

      • アプリケーションをパブリックに公開するには、 イングレスAllow all traffic に変更します。
    • コンピューティング クォータ: テスト アプリケーションの値を設定します。 コンピューティング クォータの値の設定を示すスクリーンショット。

    • アクセス: 他のユーザーを追加するか、行項目を削除してエントリを削除します。

  3. [ 確認] で、プロジェクトの設定を確認し、[ プロジェクトの作成] を選択します。

    AKS デスクトップで新しいプロジェクトを作成するスクリーンショット。

アプリケーションをデプロイする

  1. アプリケーション名を指定し、[アプリケーションの 作成] を選択します。

    AKS デスクトップで新しいアプリケーションを作成するスクリーンショット。

  2. アプリケーションのソースを選択します。 この例では、Kubernetes YAML>Next を選択しますアプリケーション ソースの選択、Kubernetes YAML の選択を示すスクリーンショット。

  3. aks-store-quickstart.yaml開き、その内容をコピーしてエディターに貼り付け、[次へ] を選択します。 コピーして貼り付けた YAML を含む YAML エディターを示すスクリーンショット。

  4. 作成されたリソースを確認し、[ デプロイ して 閉じる] を選択します。 [確認] と [デプロイ] の概要を示すスクリーンショット。[デプロイ] と [閉じる] を選択します。

  5. リソースのデプロイには数分かかる場合があります。 この間、クラスターのスケーリング中にプロジェクトの状態が Degraded 表示されることがあります。

  6. [リソース]、[ワークロード] の順に選択して、アプリケーション リソース の状態 を確認します

    リソースとその変更を表示するための [リソース] タブを示すスクリーンショット。 上部のウィンドウ メニュー オプション Navigate>Reload を選択して、画面の更新を強制できます。

  7. 個々のワークロード リソースを選択して、その詳細とイベントを表示します。

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

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

AKS デスクトップ

  1. Resource>Network>Service: store-front>External IP からパブリック IP アドレスを取得します。 アプリケーションのパブリック IP アドレスの取得を示すスクリーンショット。

  2. ログやメトリックの表示など、AKS デスクトップでアプリケーションを探索します。 詳細については、 AKS デスクトップの概要に関するページを参照してください。

コマンド ライン

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

    kubectl get service store-front --watch
    

    最初は、EXTERNAL-IP サービスの store-front<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 サンプル アプリケーションのスクリーンショット。

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

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

AKS デスクトップ

Note

次のチュートリアル手順に進む場合は、AKS デスクトップ プロジェクトを削除しないでください。

完了したら、[ 削除 ] アイコンを選択します。 確認メッセージで、[ 名前空間も削除する] を選択します。 プロジェクトを削除するには、ごみ箱アイコンを選択します

コマンドライン

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

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

    kubectl get pods
    

次のステップ

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

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

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