repl.info

kubectl -o custom-columnsで、配列内の任意のデータを表示したい

kubectlの–outputオプションを使うと、表示するデータとヘッダを自由に指定できる。これを使うと、例えばどのノードがDiskPressureやMemoryPressureのStatusがTrueか?を一覧で見ることができる。

方法としてはこんな感じ。costum-columnsは <header>:<json-path-expr> の形式で、これをカンマで区切って指定する。.status.conditionsは配列なのだけど、フィルタすることも可能で、以下のようにすれば良い。

~ $ k get node -o custom-columns='NAME:.metadata.name,DiskPressure:.status.conditions[?(@.type == "DiskPressure")].message'

これで、Nodeの名前とDiskPressure Conditionのメッセージを一覧で表示することができる。-o jsonpath でフィルタリングしてもいいけど、ヘッダ付きで一覧表示できるとやはり便利。