Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 独自のアプリケーションとサービスをビルドして Kubernetes クラスターにデプロイし、クラスターで可用性と接続性を管理できるようにします。
サンプル アプリケーションは、次の 2 つの方法でデプロイできます。
- ワークステーションから AKS クラスターに直接デプロイします。
- 自動化デプロイ パイプラインを使用してデプロイします。 Azureでは、次を使用できます。
このチュートリアルでは、ワークステーションから直接 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 ログイン サーバー名が含まれるように更新する必要があります。
クローンされた aks-store-demo ディレクトリ内にいることを確認し、テキスト エディターで
aks-store-quickstart.yamlマニフェスト ファイルを開きます。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 デスクトップに登録する
- AKS クラスターにアクセスできるのと同じアカウントで AKS デスクトップにサインインしていることを確認します。 サインインしたら、[ Azure サブスクリプションから追加] を選択します。
- 複数ある場合は、Azure サブスクリプションの名前を入力します。 (または、矢印を選択してドロップダウン リストを開き、Azure サブスクリプションを選択します)。
- クラスターを選択し、[クラスターの 登録] を選択します。
クラスターの状態が AKS デスクトップで接続済みとして表示されたら続行します。
AKS デスクトップでマネージド プロジェクトを作成する
AKS デスクトップで、[プロジェクト] タブに移動し、[新しいマネージド Projectの作成] を選択します。
次のプロジェクト設定を構成します。
-
基本:
- プロジェクト名: 次に例を示します。
my-dev-frontend - サブスクリプション:
<your-subscription-name> - クラスター:
<your-cluster-name>
- プロジェクト名: 次に例を示します。
Note
Azure サブスクリプションと AKS クラスターを設定すると、AKS デスクトップは、必要なクラスターとサブスクリプション機能のサポートを確認します。
ネットワーク ポリシー: このクイック スタートの既定の設定をそのままにするか、必要に応じて更新することができます。
- アプリケーションをパブリックに公開するには、 イングレス を
Allow all trafficに変更します。
- アプリケーションをパブリックに公開するには、 イングレス を
コンピューティング クォータ: テスト アプリケーションの値を設定します。
アクセス: 他のユーザーを追加するか、行項目を削除してエントリを削除します。
-
基本:
[ 確認] で、プロジェクトの設定を確認し、[ プロジェクトの作成] を選択します。
アプリケーションをデプロイする
アプリケーション名を指定し、[アプリケーションの 作成] を選択します。
アプリケーションのソースを選択します。 この例では、Kubernetes YAML>Next を選択します。
aks-store-quickstart.yaml開き、その内容をコピーしてエディターに貼り付け、[次へ] を選択します。
作成されたリソースを確認し、[ デプロイ して 閉じる] を選択します。
リソースのデプロイには数分かかる場合があります。 この間、クラスターのスケーリング中にプロジェクトの状態が
Degraded表示されることがあります。[リソース]、[ワークロード] の順に選択して、アプリケーション リソース の状態 を確認します。
上部のウィンドウ メニュー オプション Navigate>Reload を選択して、画面の更新を強制できます。個々のワークロード リソースを選択して、その詳細とイベントを表示します。
アプリケーションをテストする
アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロント エンドがインターネットに公開されます。 このプロセスが完了するまでに数分かかることがあります。
AKS デスクトップ
Resource>Network>Service: store-front>External IP からパブリック IP アドレスを取得します。
ログやメトリックの表示など、AKS デスクトップでアプリケーションを探索します。 詳細については、 AKS デスクトップの概要に関するページを参照してください。
コマンド ライン
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 5sEXTERNAL-IPアドレスが<pending>からパブリック IP アドレスに変わったら、CTRL-Cを使用してkubectl監視プロセスを停止します。次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67sWeb ブラウザーを開いてサービスの外部 IP アドレス
http://<external-ip>に移動し、アプリケーションの動作を確認します。
アプリケーションが読み込まれない場合、イメージ レジストリの承認に問題がある可能性があります。 コンテナーのステータスを表示するには、kubectl get pods コマンドを使用します。 コンテナー イメージをプルできない場合は、「Azure Kubernetes Service から Azure Container Registry の認証を受ける」を参照してください。
Azure portal
Azure portal に移動してデプロイ情報を見つけます。
AKS クラスター リソースに移動します。
サービス メニューの [Kubernetes リソース] で、[サービスとイングレス] を選択します。
store-frontサービスの列に表示されている外部 IP をコピーします。IP をブラウザーに貼り付け、ストア ページにアクセスします。
リソースをクリーンアップする
アプリケーションの機能を検証したので、アプリケーションからクラスターを削除できるようになりました。 次のチュートリアルでは、アプリケーションを再度デプロイします。
AKS デスクトップ
Note
次のチュートリアル手順に進む場合は、AKS デスクトップ プロジェクトを削除しないでください。
完了したら、[ 削除 ] アイコンを選択します。 確認メッセージで、[ 名前空間も削除する] を選択します。
コマンドライン
kubectl deleteコマンドを使用して、コンテナー インスタンスとリソースを停止して削除します。kubectl delete -f aks-store-quickstart.yamlkubectl get podsコマンドを使用して、すべてのアプリケーション ポッドが削除されていることを確認します。kubectl get pods
次のステップ
このチュートリアルでは、サンプルの Azure アプリケーションを AKS の Kubernetes クラスターにデプロイしました。 以下の方法を学習しました。
- Kubernetes マニフェスト ファイルを更新する。
- Kubernetes でアプリケーションを実行する。
- アプリケーションをテストします。
次のチュートリアルでは、Kubernetes のステートフル ワークロードに PaaS サービスを使用する方法について説明します。