最高の Kubernetes ダッシュボードを求めて ~2022春~

こんにちは。 vivit で SRE をやっている 宮本 です!

素晴らしい Kubernetes(以降 k8s) ライフを送るために欠かせないのがダッシュボードです!

ダッシュボードには見やすさ、網羅性、操作性など沢山のものが求められます。

k8s の場合はさらに、多くのコンポーネント(Deployment、それに紐づく ReplicaSet 、 Pod など)が絡み合っており、使いやすいダッシュボードを作るのは結構難しいです。

一般的なダッシュボードと違って、k8s ではリソース(特に Pod)の更新やオートスケーリングが頻繁に行われるため、今現在の Cluster の状態を自動更新で即座に表示してくれるものだと嬉しいです 🙆‍♂️

「普通に kubectl で良くない?」と思っていましたが、やはりダッシュボード使わないと冗長に感じてしまいます。


そんなこんなで、以下のざっくりとした観点から、(個人的)最高の k8s ダッシュボードを検討してみたいと思います!!

項目 説明
見やすさ 色、アイコン、レイアウトなどで見やすいものになっているか
操作性 操作は直感的か
ショートカットキーが十分使えるか
反映の速度・安定性 リアルタイムに自動更新されるか
反映速度が十分で、変に遅延したり不安定だったりしないか
セットアップの手間 どれだけセットアップの労力がかからないか

なお、評価は以下のように行います。

絵文字 評価
🤩 完璧!言うこと無し!
🙆‍♂️ 完璧じゃないけど、良いね
🙅‍♂️ 改善の余地が大きい

検討対象

GKE ダッシュボード

項目 評価 コメント
見やすさ 🤩 GKE に限らずですが、GCP のコンソール画面は本当に見やすいです!
完結にまとめられていて、美しいです。
操作性 🙆‍♂️ 操作は直感的で迷うことはありません。
GCP だからこそ、LB や証明書の画面にすぐ移動できるのも素晴らしいです。
ブラウザなので仕方ないですが、ショートカットキーがほとんど使えないのが難点です。
反映の速度・安定性 🙅‍♂️ 安定していますが、リアルタイム更新機能はありません。
また、UI のためなのかページの読み込み速度がちょっと遅く感じることが多いです。
セットアップの手間 🤩 GKE を使うなら、正真正銘の手間0です!

Lens

項目 評価 コメント
見やすさ 🤩 情報が完結にまとめらています
落ち着いたデザインで個人的にもすごく好みです!
操作性 🙅‍♂️ 画面操作は分かりやすいのですが、自分が触った限りだとショートカットキーがあまり充実してなさそうでした(知らないだけだったらすみません)
デスクトップアプリなので、ここは残念なポイントでした。
反映の速度・安定性 🤩 リアルタイム更新が出来るのが素晴らしいです!
速度も問題無く、言うこと無しです。
セットアップの手間 🙆‍♂️ デスクトップアプリなので、別途インストールが必要です。
ただし homebrew で入れられますし、kubectl 以外の設定も特に不要なので簡単です。

k8slens.dev

IDE と記載がありますが、これで何か開発するわけではありません。
普通のダッシュボードだと思って頂ければOKです。

補足ですが、Prometheus を使って Pod メトリクスを見る機能も付いています!
vivit では Datadog を使っていて Prometheus は未使用なので恩恵は特に無いです。

IntelliJ IDEA k8s プラグイン

私は IntelliJ を使っていますが、VSCode でも同じようなことが出来ると思います!

項目 評価 コメント
見やすさ 🙆‍♂️ 割と最低限で、特に見やすいということはありません。
必要な情報はしっかりまとまっているので問題はありません。
操作性 🤩 普段と同じ IDE の操作感でショートカットキーが使えます!
Pod の検索などもお手の物で、操作性は素晴らしいです。
反映の速度・安定性 🤩 リアルタイム更新はできません。
ただし Refresh をショートカットキーで行えるので問題無く、反映速度も早いです。
セットアップの手間 🤩 プラグインを有効にするだけなのでほぼ0です。

Pod の中に入る、ライブマニフェストを出力してくれるなど便利な機能もサクサク使えます。

Datadog

項目 評価 コメント
見やすさ 🤩 流石は Datadog で、情報のまとめ方、 UI が抜群です。
操作性 🙆‍♂️ 一部しかショートカットキーが使えません。
が、メトリクスやログなどへのジャンプが強力です。
反映の速度・安定性 🙅‍♂️ リアルタイム更新に対応しています!
しかし反映までの速度が遅いのと、削除済の Pod が表示されたり、Complete ステータスになっている Job が runnning のまま表示されるなど安定感がいまいちです。
セットアップの手間 🙅‍♂️ ダッシュボードの枠を超えているので当然ですが、k8s cluster にエージェントを入れる必要があります。
料金との相談も必要で、手間はそれなりにかかります。

「Datadog は k8s ダッシュボードツールじゃないだろ!」と突っ込まれるかもしれませんが、ダッシュボードとしても使えます。
以下のように k8s タブが存在しており、マニフェストファイルを見たり Pod の状態を確認したりと一通りのことはできます!

Datadog の強みは何と言ってもメトリクス、ログとの連携です! ここは他では再現できないレベルで素晴らしいですが、やはり料金面で選択肢に入らない場合もあると思います。

優勝決定 & 総括

優勝は、、、

IntelliJ IDEA k8s プラグイン です🥇🥇🥇

やはりショートカットキーの充実とブラウザへ切り替えなくて良い手軽さが優勝のポイントです!!
メトリクスはどうしても見られないので、必要であれば Pod 名などをコピーして Datadog にペーストするという感じです。


vivit では一緒に働くエンジニアを大募集しています 🎉

www.wantedly.com

少しでも興味を持って頂いた方は、是非カジュアル面談の応募をお待ちしております!