Kubeviousでkubernetesの状態を確認する

Kubevious is 何?

kubeviousとはkubernetestの設定をビジュアルに確認できるオープンソースソフトウェアです。これだけだと他にも似たようなツールはあるのですが、いくつか面白い機能があったので触ってみました。

実際に動作するデモが用意されていますのでインストールする必要もありません。なにわともあれ触ってみましょう。
基本的には状態を参照するだけのツールとなっており、今のところ設定の変更はできないようです。
demo.kubevious.io

Namespaceごとに構成しているリソースががまとめられて表示されています。見たいNamespaceを選択するとDeployment、Service、ServiceAccount、Config等々の各リソースの詳細を確認することが可能です。
例えばDeploymentを選択するとManifestの内容が確認できます。
f:id:cloudfish:20200427172400p:plain
f:id:cloudfish:20200427172549p:plain

主な機能

Detects Configuration Errors

設定エラーや使われていないリソースがあったりするとAler欄にその内容を表示してくれます。
f:id:cloudfish:20200427175424p:plain
f:id:cloudfish:20200427175500p:plain

Enables Full Text Search

設定内容から全文検索が可能です。例えば8080で検索すると以下のようにポート8080を利用している箇所がヒットします。Grepよりインタラクティブに結果が確認できるのでサクッと設定内容を検索したい場合は便利だと思います。
f:id:cloudfish:20200428081234p:plain

Radioactive & Overprivileged Workloads

特権コンテナや、ホストのネットワークを利用しているリソースなどを放射能マークで知らせてくれます。
f:id:cloudfish:20200428081906p:plain
f:id:cloudfish:20200428091949p:plain

Time Machine

Kubeviousで一番面白そうな機能がこのTIme Machineです。
過去の設定内容を時間を遡って確認することが可能です。例えばreplica数の変更タイミングと以前の設定値をTimelineを遡ることで確認が可能です。githubマニフェストを管理してGitOpsを実践していれば差分や変更タイミングは把握できると思いますが、こういった形でビジュアルに確認できるのは面白いですね。
f:id:cloudfish:20200428091823p:plain
f:id:cloudfish:20200428091421p:plain

Kubeviousのデプロイ

インストールは特にハマることはなく以下のコマンドデプロイできました。

kubectl create namespace kubevious
helm repo add kubevious https://helm.kubevious.io
helm upgrade --atomic -i kubevious kubevious/kubevious --version 0.5.9 -n kubevious

ポートフォワードでアクセスします。

kubectl port-forward $(kubectl get pod -l k8s-app=kubevious-ui -n kubevious -o jsonpath="{.items[0].metadata.name}") 3000:3000 -n kubevious

以下のURLにアクセスするとKubeviousが表示されます。
http://localhost:3000
f:id:cloudfish:20200428092103p:plain

まとめ

Production環境で使うほどのツールではないかもしれませんが、Staging環境などで設定漏れや使ってないリソースの確認など俯瞰的に状態を確認したりするのにはすごく便利なツールではないでしょうか。できればクラスタを一括管理できればもっと便利に使えるかもしれませんね。みなさん興味があれば是非使ってみてください。

参考

github.com