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つのリソースがまとめて作成されます。

リソース種別名前
Deploymentapps-azure-vote-back
Serviceapps-azure-vote-back
Deploymentapps-azure-vote-front
Serviceapps-azure-vote-front

フロントエンドとバックエンドが連携する2層構成のアプリケーションです。


Podの稼働状態を確認する

アプリを展開したら、Podが正常に動いているか確認しましょう。

kubectl get pods

azure-vote-frontazure-vote-back の2つのPodが表示され、STATUSRunning になっていれば正常です。

Podが Running になるまでリアルタイムで監視したい場合は、--watch オプションを使うと継続的に状態を確認できます。

kubectl get pods --watch

監視を終了するには Ctrl + C を押してください。


Serviceの外部IPを確認する

次に、フロントエンドのServiceを確認して外部からアクセスするためのIPアドレスを取得します。

kubectl get service azure-vote-front

出力の EXTERNAL-IP 列にパブリックIPアドレスが表示されます。このIPはクラスタや環境によって異なります。

NaAzMuEre-vote-frontTLYoPaEdBalancerC1L0U.S0T.ExR.-xIPE2X0T.E2R1N0A.L5-2I.P143P8O0R:Tx(xSx)xx/TCPAxGEm

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リソースの概念を理解することが次のステップとなります。