Advanced Network Observability for AKS を試してみた
下記のブログポストを発見😎
読んでいくと、どうやら 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