🎼

Advanced Network Observability for AKS を試してみた

2024/06/15に公開

下記のブログポストを発見😎

読んでいくと、どうやら AKS へ Hubble を簡単に導入できるようになる模様です。Cilium-powered な AKS では Hubble は使えなかったですし、それ以上に Cilium じゃなくても Aspire の機能を使うことで Hubble が利用できるようになるそうです。

ちょっと気になったので、実際に試してみました。

概要については下記のページになります。

構築してみる

すぐ近くの階層に無くて若干分かりにくいですが、構築手順については下記のページに記載されています。

Azure Managed な Prometheus / Grafana を使うか、自前の Prometheus / Grafana を使うか選択できます。今回は Azure Managed な方で試してみました。

  • Azure CLI 拡張機能とプレビュー用機能フラグの登録
  • AKS クラスターの作成
  • Azure Managed Prometheus と Grafana の作成と構成

上記までは、手順通りに実行することで特に問題なく実施できるかと思います。

Azure Managed Prometheus と Grafana

ここまでの構築にて、Prometheus / Grafana へ下記のようなデータ連携・ダッシュボードが構築されます。



かなり有益なダッシュボードが簡単に構築できているのは嬉しいですね!🤗

「Hubble CLI のインストール」について

Hubble CLI のインストール」に記載のコマンドは、色々と不備がありました。

まず、Cloud Shell 上で実行すると sudo の部分が実行できないため、上手く完了できません。

このため、ローカルの WSL2 (Ubuntu 24.02) 等を用意する必要があります。

次に、この HUBBLE_VERSION の指定方法では curl に指定している URL の部分が正しくダウンロードできるものとならない (404 になってしまう) ため、下記のように修正します。

export HUBBLE_VERSION=v0.11.0

上記を修正したうえで一連のコマンドを実行すれば、問題なくインストールできるかと思います。

Hubble UI での視覚化

最後の kubectl port-forward コマンドでは、名前空間を指定しないとうまくいかないかと思います。エラーになってしまった場合は、下記のコマンドを試してみてください。

kubectl port-forward svc/hubble-ui 12000:80 -n kube-system

ローカルのブラウザから http://localhost:12000/ へアクセスし、こんな感じの画面に入れれば無事完了です!

サンプルワークロードをデプロイしてみる

このままだと実際のワークロードが無く面白くないため、サンプルのワークロードをデプロイしてみます。サンプルは界隈ではおなじみ、Azure Voting App を利用します。

$ kubectl create namespace vote
$ kubectl apply -f azure-vote.yaml -n vote
...

あらためて Hubble UI に行ってみると…

新しく「vote」名前空間が選べるようになっているので、選択します。

こんな感じで、Azure Voting App の通信状況が記録されることが確認できました🤗

おわりに

以上、Advanced Network Observability for AKS の検証でした。

一部つまるところはあったものの、これだけ簡単に Prometheus / Grafana / Hubble の環境を整えられるのは大変ありがたいですね。検証用・学習用としても使える場面は結構あるんじゃないかと思います。

これからも色々な進化が楽しみですね!🤗

Discussion