我使用tmuxinator生成一个tmux窗口,该窗口监视一些kubectl命令的输出,例如:
watch -n 5 kubectl get pods/rc/svc/pv/pvc
但是有时候Kubectl的输出变得太宽,即滚动更新后的选择器列,我不想在我的设置中显示它。我该如何单独使用kubectl?
awk或cut也可以完成这项工作,但是我无法在不失去表格式的情况下找到解决该问题的方法。
最佳答案
没有明确支持在kubectl中选择列的子集,但是有几种方法可以实现此目的。您已经提到了awk
,可以将其与column -t
进行解析以获得漂亮的表格式:
$ kubectl get pods --all-namespaces | awk {'print $1" " $2'} | column -t
NAMESPACE NAME
kube-system fluentd-cloud-logging-k8s-stclair-minion-wnzd
kube-system kube-dns-v10-fo6gl
kube-system kube-proxy-k8s-stclair-minion-wnzd
...
或者,您可以使用kubectl的go-template输出来创建自定义输出(您也可以将其与column配对),例如打印 Pane 名称和UID的前8个字符:
$ kubectl get pods --all-namespaces -o=go-template='{{println "NAME UID"}}{{range .items}}{{.metadata.name}} {{printf "%.8s\n" .metadata.uid}}{{end}}' | column -t
NAME UID
fluentd-cloud-logging-k8s-stclair-minion-wnzd 8bcb7129
kube-dns-v10-fo6gl 90bce35e
kube-proxy-k8s-stclair-minion-wnzd 8bc752c8
kubernetes-dashboard-v0.1.0-cptxn 90d18852
l7-lb-controller-v0.5.2-n6i23 90daf833
有关go-templates的更多信息here。还支持JSONpath的变体。
关于kubernetes - 如何使用Kubectl隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990667/