個人的におすすめする kubectl の plugin

Kubernetes Advent Calender その2 の 2日目

makocchi
5 min readDec 2, 2019
https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/

みなさん素敵な Kubernetes ライフを満喫していらっしゃるでしょうか?

Kubernetes ライフに欠かせないのが kubectl なのですが、様々な plugin が世の中には存在しています。これらの plugin を使いこなすことで、Kubernetes ライフが充実することでしょう。今日はそんな plugin をいくつか紹介していこうと思います。

kubectl-grep

これは kubectl get xxx ... | grep hogehoge のようなことを一発でやってくれるものです。label とかで get の出力を filter することは出来るんですけど、時には grep したい場合ってありますよね?

直感的に叩くことが出来るのでとても便利です。現在のところは grep 対象に daemonsets/deployments/pods/nodes/hpas/statefulsets が指定できるようです。

kubectl-debug

kubernetes 1.16 から Ephemeral Container の機能がアルファで搭載されました。その機能を使う際に必要になってくる plugin です。

可動している Pod に対して一時的な debug 用のコンテナを差し込むことで、アプリケーション等が稼働する実際のコンテナにはそれらのツールを仕込んで置かなくてもよくなります。

まだアルファ機能なので仕様の変更があるかもしれません。また将来的には kubectl に取り込まれる可能性もあると思います。今後の動きに注目ですね。

kubectl-custom-cols

普段運用していると普通に get しただけでは表示されない項目を確認したくなることがあります。例えば Pod の qos-class とか。

-o jsonpath とかで頑張ってもいいんですが、こういうのを plugin 化しておくと便利ですよね。そんな plugin になっています。

この plugin 自体は shell で出来ていて、中身は実は custom-columns-file を指定しているだけなのですが、この使い方を覚えるという意味でも中身を覗いてみてはいかがでしょうか。

outdated

現在動いているコンテナの image が最新とどれだけ離れているか確認することができる plugin です。定期的に使用 image を確認するといった仕組みを入れたいと思っている方は検討してみてはいかがでしょうか。

表示も緑が最新で赤が古いといったようにわかりやすくてとてもいいですね。

kubectl-free / kubectl-resources

最後は Pod の resrouces の limits/requests を表示する plugin の紹介です。

2つ紹介しましたが、ほぼほぼ同じ plugin になってます。単に get だけだと limits/requests は表示してくれないので describe とか jsonpath とかを使わないといけないのが面倒くさいですよね。

kubectl の plugin をいくつか紹介させて頂きました。(自分のも最後入ってますが😋)

kubectl の plugin は shell でも作れるので、まずは簡単なものから作ってみてはいかがでしょうか。いろいろ便利な pluginのアイデアが出てきたら今後も頑張って作って公開していこうと思います。また、これ便利だよっていうのあれば是非教えてくださいね。

--

--

makocchi

Makoto Hasegawa | kubernetes | CKA(#CKA-1700–0150–0100) | CKAD(CKAD-1800–0005–0100) | docker | container | OpenStack