Kubernetes

k9sをインストールするだけでkubernetesの管理も楽々

「pod や node の一覧をサクッと並び変えて見たい」

「configmap の内容ってどうなってたっけ?」

「nodegroup の drain の状況が知りたいな」

などなど、Kubernetes で管理しているノード(node)やポッド(pod)の状態を確認する場面はしばしばあります。

これまでは kubectl コマンドを使って頑張っていましたが、以前から気になっていた k9s という CLI のツールを使ってみたので紹介します。

k9sのインストール

公式サイト(github)にも書いてありますが、Mac の場合は以下のコマンドでインストールできます。

$ brew install k9s

いきなり CLI で触るのは怖いという方もいると思いますが、–readonly オプションも用意されているので、最初は閲覧のみで利用するのもアリだと思います。

シェルのプロファイルにエイリアスを登録しておくと安心ですね。

k9sの使い方

k9s を起動すると、kubernetes の config で設定している context を選択する画面となります。

複数のコンテキスト(クラスタ)を使い分けている人は、ここで切り替えましょう。

kubectl で言う、以下のコマンドでやっているようなことですね。

namespace(ネームスペース)

その後、コロンに続けて namespace と入力すると、namespace の一覧が表示されます。
(ns でも OK です)

:namespace

na まで打つとコマンドの候補がでてくるので便利ですね。

namespace を選択して pod 一覧を確認してみましょう。

上の表示からは消えてしまっていますが、見出し行で「A」と入力すると、一番右側の「AGE」の項目で並び替えてくれます。

これによって、最近起動した pod がひと目でわかりますね。

コマンドだと以下のようなソート指定が必要になります。
(あっ、昇順と降順の切り替えがわからない)

$ kubectl get pods -n hoge –sort-by=.metadata.creationTimestamp

pod を選択するとコンテナの情報が確認でき、

さらにコンテナを選択するとログをチェックすることができます。

エスケープ(esc)キーを押すことで、コンテナや pod 一覧の画面に戻れますので迷子にならないように(笑)
(私が戻れなくて k9s 終了しただけですが)

node(ノード)

次に、ノードの一覧を見てみましょうか。

:node

AWS の EKS 上に 8 台のノードが起動していることがわかります。

ノードに乗っている pod の数もわかるので、リソース調整時の参考にもなりそうです。

podの状態

では、特定のアプリのデプロイを行い pod の動きを確認してみましょうか。

pod 一覧の画面を開いたままにしておきます。

READY や STATUS の項目を見てもらうとわかりますが、pod が新しく起動してきました。

以前は while で 5 秒おきに kubectl get pods させていたのですが、コマンドでももっと楽な方法があったのかな。

さて STATUS ですが、node がスケールして待たされている時に「Pending」を見かけるようになりました。

普段あまり見かけないステータスは、どんな時に出るのか知っておくと安心ですね。

「CrashLoopBackoff」や「CreateContainerError」が出てるとブルーな気分になりますが・・・。

まとめ

k9s をインストールして使ってみました。

pod や node の状態を確認することはできましたが、やはり基本的な操作を覚えてから使うべきでしたね・・・。

ということで、もう少し使いつつ、この記事をブラッシュアップしていきたいと思います。