AKSクラスタへのデモアプリケーションの展開 — AKSの基礎を理解するシリーズ Part. 4
この記事の内容
- Azure Cloud Shellを使ってGitHubからサンプルコードをクローンする手順を紹介します
kubectl create -fコマンドを使い、YAMLファイルからKubernetesリソースを一括展開する方法を解説しますkubectl get podsや--watchオプションを使ったPod状態の確認方法を説明します- LoadBalancerサービスで発行された外部IPを使ってアプリにアクセスする流れを確認します
- デモアプリとして投票アプリ(Azure Voting App)を動作確認し、フロントとバックの2層構成を体験します
GitHubからサンプルコードをクローンする
Cloud Shellを開いたら、まずGitHubに用意されているハンズオン用リポジトリをクローンします。
git clone https://github.com/MicrosoftPublishing/HandsOnKubernetesOnAzure
クローンが完了したら、デモアプリケーションの定義ファイルが格納されているディレクトリへ移動します。
cd HandsOnKubernetesOnAzure/chapter02
このディレクトリの中に azure.yaml というファイルがあります。このYAMLファイルにアプリケーションのリソース定義が記述されています。
YAMLファイルの中身を確認する(任意)
中身が気になる方は、Cloud Shellのエディタで確認できます。
code azure.yaml
コマンドを実行するとエディタが立ち上がり、Kubernetesリソースの定義を参照できます。確認が終わったら、変更を保存せずにエディタを閉じてください。
アプリケーションを展開する
では、実際にアプリケーションをAKSクラスタへ展開します。kubectl create コマンドに -f オプションでYAMLファイルを指定するだけです。
kubectl create -f azure.yaml
このコマンドを実行すると、YAMLファイルに定義された以下の4つのリソースがまとめて作成されます。
| リソース種別 | 名前 |
|---|---|
| Deployment | apps-azure-vote-back |
| Service | apps-azure-vote-back |
| Deployment | apps-azure-vote-front |
| Service | apps-azure-vote-front |
フロントエンドとバックエンドが連携する2層構成のアプリケーションです。
Podの稼働状態を確認する
アプリを展開したら、Podが正常に動いているか確認しましょう。
kubectl get pods
azure-vote-front と azure-vote-back の2つのPodが表示され、STATUS が Running になっていれば正常です。
Podが Running になるまでリアルタイムで監視したい場合は、--watch オプションを使うと継続的に状態を確認できます。
kubectl get pods --watch
監視を終了するには Ctrl + C を押してください。
Serviceの外部IPを確認する
次に、フロントエンドのServiceを確認して外部からアクセスするためのIPアドレスを取得します。
kubectl get service azure-vote-front
出力の EXTERNAL-IP 列にパブリックIPアドレスが表示されます。このIPはクラスタや環境によって異なります。
LoadBalancerタイプのServiceが作成されており、外部IPでアプリケーションが公開されていることが確認できます。
ブラウザからアプリにアクセスする
取得した外部IPをコピーして、ブラウザの新しいタブに貼り付けてアクセスします。
「Azure Voting App」が表示されれば展開成功です。このアプリはCATとDOGへの投票ができるシンプルなデモアプリケーションで、RESETボタンで投票をリセットすることもできます。
手動で作成したAKSクラスタ上でアプリケーションが実際に動作していることを確認できました。
現在のリソース全体を確認する
最後に、クラスタ上で動作しているすべてのリソースを一覧で確認しておきましょう。
kubectl get all
展開したDeployment・Pod・Service・ReplicaSetがまとめて表示され、クラスタの状態を一通り把握できます。
まとめ
今回はAKSクラスタへデモアプリケーションを展開する手順を確認しました。Cloud ShellでGitHubからコードをクローンし、kubectl create -f コマンドでYAMLファイルを適用するだけでフロントとバックが連携するアプリを簡単に動かすことができます。kubectl get pods --watch を使ったリアルタイム監視や、kubectl get all による全リソース確認など、基本的な動作確認のコマンドも合わせて覚えておくと運用時に役立ちます。展開自体は非常にシンプルですが、DeploymentやServiceなど登場するKubernetesリソースの概念を理解することが次のステップとなります。