Kekeの日記

エンジニア、読書なんでも

KialiでIstio Service Meshをよりリッチにする

http://www.kiali.io/images/logo-header-light.svg

本記事

この記事では、Istioのサービスメッシュに併せてさらなるフィードバックを与えてくれるKialiというものを試していこうと思います。

Istioは何もかもできちゃいますが、Kialiを使うことでさらにリッチに情報を集めることができるので今回は検証して行きたいと思っています。

Kiali

Kialiとは

Kialiとは、Istioのサービスメッシュが構築されているマイクロサービスで何が起こっているかを可視化するソフトです。

機能

以下のような機能があります。

  • サービスグラフの可視化
  • 変数を定義
  • 分散トレーシング
  • ヘルス表示・計算
  • メトリクス収集、グラフ
  • サービスディスカバリ

アーキテクチャ

IstioとJaegerをラッピングしたような仕組みになっている。

http://www.kiali.io/images/documentation/architecture/architecture.png

使ってみる

ログインする

以下のコマンドでポート転送をします。

kubectl -n istio-system port-forward (kubectl -n istio-system get pod -l app=kiali -o jsonpath='{.items[0].metadata.name}') 20001:20001 &

そしてアクセスすると以下のような画面になります。

f:id:bobchan1915:20181006044239p:plain

ログイン名、パスワードは共にadminで入られます。

サービスグラフを確認

どのようにマイクロサービスが通信しているかが見られます。

しかし、何かしらアプリケーションのバグでグラフが書かれていません。

f:id:bobchan1915:20181006044913p:plain

再度、LinkerdのProxyをつけてデプロイされると以下のようになる。

f:id:bobchan1915:20181006055003p:plain

なので正常そうなのですが、、、原因がわからないため調査します。

公式ページだと以下のようにできています。

ヘルス

f:id:bobchan1915:20181006044902p:plain

サイドパネルによる詳細

f:id:bobchan1915:20181006044846p:plain

トラフィックアニメーション

f:id:bobchan1915:20181006044814p:plain

アプリケーション、ワークロードとサービスを見る

以下のようにWorkloadsでアプリケーションを確認することができます。

f:id:bobchan1915:20181006045238p:plain

またServicesからは詳しく見ることができます。

f:id:bobchan1915:20181006045553p:plain

メトリクス

ServicesInbound Metricsから見られます。しかし、単位も書いてなくグラフはわかりづらい。

f:id:bobchan1915:20181006045738p:plain

まとめ

サービスグラフがうまくいってなかったのでしばらくはアプリケーション側の問題を探す。

しかし、メトリクスや分散トレーシングはすでにIstioや他の機能で実現できるので、メリットがあるとすればリッチなサービスグラフかなと感じました。