NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure Container Service(AKS) を試してみたよ

こんにちは。
コンサルティング & テクノロジー部の Azure チームの吾郷です。

Advent Calender「ネクストスケープ クラウド事業本部 Advent Calendar 2017」 23日目の記事です。
もうすぐゴールが近づいてきましたね。

今回は、今まで気になっていたけど触ることができていなかった、Azure Container Services(AKS)を触ってみました。

まぁー、チュートリアルをやった程度なので、個人のブログに書けばいいじゃんって言われちゃうくらいの内容ですが、
最後までお付き合いいただけるとありがたいです。

 

f:id:nextscape_blog:20210911013542p:plain

 

Azure Container Service(AKS) について

 

Microsoft Azure のコンテナーサービスには、
・Azure Container Service
・Azure Container Service(AKS)
と、2種類があります。今回は、AKSの方です。

Azure Container Service の方は、オーケストレーターに、
・DC/OS
・Swarm
・Kubernetes
が利用できる、コンテナサービスです。
1年半くらい前に試したときは、Virtual Machine Scale Sets を下回りにリソースプールを構成して、その上にコンテナクラスタを構築しているサービスでしたが、今はなかなかいい感じにまとまってる感じですね。

Azure Container Service(AKS)は、Managed Kubernetes コンテナー オーケストレーター サービスです。もちろん選択できるオーケストレーターは、Kubernetes 
だけですね。

 

Azure Container ServiceでオーケストレーターをKubernetes にした場合と Azure Container Service(AKS) を比較した場合、マスターの課金の扱いが違うのと SLA の有無が一番大きな違いのようです。
あとは、作成されるリソースが全然違います。

 

[Azure Container Service で作成した場合]

f:id:nextscape_blog:20210911013608j:plain

 

[Azure Container Service(AKS)で作成した場合]

f:id:nextscape_blog:20210911013625j:plain

 

試してみたよ



ここのチュートリアルを参考に、K8Sクラスターを作成しサンプルアプリをデプロイしました。
ついでに、Log Analytics につないで監視の設定もやってみました。


K8Sクラスタの作成



参考にしたのは、以下のチュートリアルです。
Azure Container Service (AKS) クラスターのデプロイ

事前準備として、
SSHキー
サービスプリンシパル
が必要になります。

これらを準備したら、あとはポータルからポチポチするだけでとっても簡単です。

まずは、新規作成から「Azure Conainer Service - AKS」を選択します。

f:id:nextscape_blog:20210911013713j:plain

 

Conteiner name と、Kubernetes のバージョン、リソースグループ、リージョンを設定します。
リソースグループは、サービスプリンシパルの所の手順ですでに作成しているはずです。

f:id:nextscape_blog:20210911013730j:plain

 

SSH キーはすでに作成しているものを、Service principal Client ID とService proncipal client ID は、サービスプリンシパルの作成したものを設定します。

f:id:nextscape_blog:20210911013750j:plain

 

ここまで来たら、「OK」をクリックするだけです。

f:id:nextscape_blog:20210911013809j:plain



 

サンプルアプリのデプロイ

 

サンプルアプリのデプロイです。
チュートリアルにある、YAML をコピーしてymlファイルを作成します。
それを、[kubectl create -f]でデプロイして、
[kubectl get service --watch]で起動を確認しているという感じです。

f:id:nextscape_blog:20210911013827j:plain

 

起動したら、EXTERNAL-IP に割り当てられたIPをブラウザで開くと、こんな感じのアプリに繋がります。

f:id:nextscape_blog:20210911013843j:plain



監視の設定



Azure Log Analytics を利用して、Azure Container Services(AKS)の監視を行うことができます。
ポータルからポチポチするだけなので、とっても簡単にできますよ。

参考にしたチュートリアルは、次のものです。
Azure Container Service (AKS) の監視

まずは、新規で、「Container Monitoring Solution」を選びます。

f:id:nextscape_blog:20210911013912j:plain

 

 

あとは、OMS Workspacesを作りまる。(あるものを選択してもいいんですけど)

f:id:nextscape_blog:20210911013933j:plain

 

 

 

で、あとは、[Create]を押します。

f:id:nextscape_blog:20210911013954j:plain



 

 

 

できたら、詳細設定の「Connected Sources」→「Linux Serviers」と開いて、ID  と PRIMARY KEY をコピっておきます

f:id:nextscape_blog:20210911014014j:plain

 

 

 

で、またチュートリアルにあるYAMLをつかいます。
このときに、前の手順でコピった ID と Key を使います。
ymlファイルを作ったら、「kubectl create -f」 で設定を流し込みます。

f:id:nextscape_blog:20210911014033j:plain

 

 

 

しばらくすると、こんな感じでログを見ることができます。

f:id:nextscape_blog:20210911014050j:plain




 

まとめ



個人的には、Azure では、App Services がとても大好きです。
PaaS で運用していると、パッチの更新とかセキュリティ対策がとっても楽ですもんね。

でも、環境的なことや様々な要因で、PaaS を選択できない場合に、
コンテナという選択肢がでてくることも少なくないと思います。

これが、少し前までは、VM を使ったリソースプールというのを意識せざるを得なかったのが、だいぶ緩和されてきていると思います。
Azure Container Service(AKS)は、とても素晴らしいサービスだと思いますので、私ももっと使って知見を貯めたいと思います。
(貯めたらどっかでOutputしまーす。)

ただ、一点だけ言わせて頂けると、名前がとってもわかりにくい
・Azure Container Service
・Azure Container Service(AKS)
結果的にこの二つって別のサービスですよ。

MS さんどうにかしてください~w