KialiでIstio Service Meshをよりリッチにする
本記事
Adventカレンダーなどではなくて、軽くメモをとった感じなので、リッチな情報がほしかったら公式ドキュメントなどをお読みください。
この記事では、Istioのサービスメッシュに併せてさらなるフィードバックを与えてくれるKialiというものを試していこうと思います。
Istioは何もかもできちゃいますが、Kialiを使うことでさらにリッチに情報を集めることができるので今回は検証して行きたいと思っています。
公式ページは以下の通りです。
前提
本記事ではIstioがすでにKubernetesクラスタに入っているものを前提します。
Kiali
Kialiとは
Kialiとは、Istioのサービスメッシュが構築されているマイクロサービスで何が起こっているかを可視化するソフトです。
機能
以下のような機能があります。
- サービスグラフの可視化
- 変数を定義
- 分散トレーシング
- ヘルス表示・計算
- メトリクス収集、グラフ
- サービスディスカバリ
アーキテクチャ
IstioとJaegerをラッピングしたような仕組みになっています。
使ってみる
公式ページに従ってインストールをしてください。
Secretを作成する
これらのSecretはUIで認可をするために使われます。
KIALI_USERNAME=$(read -p 'Kiali Username: ' uval && echo -n $uval | base64) KIALI_PASSPHRASE=$(read -sp 'Kiali Passphrase: ' pval && echo -n $pval | base64)
そしてSecretを作成します。
ログインする
以下のコマンドでポート転送をします。
kubectl -n istio-system port-forward (kubectl -n istio-system get pod -l app=kiali -o jsonpath='{.items[0].metadata.name}') 20001:20001 &
そしてアクセスすると以下のような画面になります。
ログイン名、パスワードは共にadmin
で入られます。
サービスグラフを確認
どのようにマイクロサービスが通信しているかが見られます。
しかし、何かしらアプリケーションのバグでグラフが書かれていません。
再度、LinkerdのProxyをつけてデプロイされると以下のようになります。
なので正常そうなのですが、、、原因がわからないため調査します。
公式ページだと以下のようにできています。
ヘルス
サイドパネルによる詳細
トラフィックアニメーション
アプリケーション、ワークロードとサービスを見る
以下のようにWorkloadsでアプリケーションを確認することができます。
またServicesからは詳しく見ることができます。
メトリクス
ServicesのInbound Metricsから見られます。しかし、単位も書いてなくグラフはわかりづらいです。
まとめ
サービスグラフがうまくいってなかったのでしばらくはアプリケーション側の問題を探します。
しかし、メトリクスや分散トレーシングはすでにIstioや他の機能で実現できるので、メリットがあるとすればリッチなサービスグラフかなと感じました。