我使用tmuxinator生成一个tmux窗口,该窗口监视一些kubectl命令的输出,例如:
watch -n 5 kubectl get pods/rc/svc/pv/pvc
Run Code Online (Sandbox Code Playgroud)
但是有时候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
...
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用kubectl的go-template输出来创建自定义输出(您也可以将其与列配对),例如打印窗格名称和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
Run Code Online (Sandbox Code Playgroud)
更多关于go-templates的信息。还支持JSONpath的变体。
而不是使用第二个工具/二进制文件,如awk和column。您可以通过-o=custom-columns以下方式使用标志:
kubectl get pods --all-namespaces -o=custom-columns=NAME:.metadata.name,Namespace:.metadata.namespace
与go-templates或jsonpath相比,这也是输出自定义列的另一种简便方法!
| 归档时间: |
|
| 查看次数: |
2996 次 |
| 最近记录: |