kubecolor
コマンドを使うと kubectl
コマンドの実行結果を色付けして読みやすくできる.kubectl
コマンドの実行結果は基本的に白黒なので,リソース数が多かったり,例えば -o wide
オプションを使って表示項目を増やしたりすると,読みにくくなることもある.
また技術講師として研修で Kubernetes を教える機会も多く,kubectl
コマンドの実行結果を説明するときに「青の〜」や「黄色の〜」という表現が使えると,特にリモート研修で注目して欲しい部分を正確に伝えられる.今回は kubecolor
コマンドを紹介する.
kubecolor
をインストールする
Linux と Mac なら kubecolor
コマンドは brew
コマンドで簡単にインストールできる.また go get
コマンドで直接インストールすることもできるし,GitHub Releases からバイナリをダウンロードして使うこともできる.brew
コマンドを使った場合は現時点だと v0.0.8
になる.数日前に最新版 v0.0.9
もリリースされている.詳しくは GitHub リポジトリ参照!
$ brew install dty1er/tap/kubecolor
また kubecolor
コマンドは内部的に kubectl
コマンドを実行するため,基本的には kubectl
コマンドを置き換えて問題ないと思う.GitHub リポジトリの README.md
にもそう書いてある.よって,慣れた k
コマンドを kubecolor
コマンドのエイリアスに設定しても良いし,タブ補完 (complete
) も問題なく使える.例えば Mac だと .zshrc
に以下のように設定している.
source <(kubectl completion zsh) alias k='kubecolor' complete -o default -F __start_kubectl kubecolor k
kubecolor
を使う
サンプルとして,Deployment 経由で Pod を3個起動しておく.そして kubecolor get pods
コマンドと kubecolor get pods -o wide
コマンドを実行した結果を以下に載せる.従来の白黒と比較して,とても読みやすくなっていると思う.
kubecolor
コマンドは get
や describe
など READ 関連コマンドをサポートしているため,次は kubecolor describe pods xxx
コマンドを実行した結果を以下に載せる.特に describe
は表示項目が多いため,少しでも色付けできると読みやすくなる.
kubecolor
コマンドは YAML フォーマットもサポートしているため,最後は kubecolor get pods xxx -o yaml
コマンドを実行した結果を以下に載せる.複雑な YAML フォーマットも少しは読みやすくなっていると思う.
なお,そもそも YAML フォーマットの「冗長な」情報を削除して読みやすくするなら,別記事で紹介した kubectl-neat も併用できる.kubecolor neat get pods xxx -o yaml
のように kubectl-neat を「ラッパー」で実行すれば,うまく色付けできる.
kubecolor
で使えるオプション
kubecolor
コマンドで --light-background
オプションを使えば,白背景などにも対応できる.実際に iTerm2 で試したところ,逆に読みにくくなることもあった.カラースキーマとの相性もあるため組み合わせを模索すると良さそう.また --plain
オプションを使えば,kubecolor
コマンドを使いつつ色付けを無効化できる.
まとめ
kubecolor
コマンドを使うと kubectl
コマンドの実行結果に色付けをして読みやすくできる.慣れた k
コマンドのエイリアスに設定できるし,タブ補完 (complete
) も使える.基本的には kubectl
コマンドに影響は及ぼさないため,興味があったら試してみると良いかと!