如何使用 Kubectl 隐藏列
How to hide a column with Kubectl
我使用 tmuxinator 生成一个 tmux window 来监视一些 kubectl 命令的输出,例如:
watch -n 5 kubectl get pods/rc/svc/pv/pvc
但有时 Kubectl 的输出会变得太宽,即滚动更新后的选择器列,我不想在我的设置中显示它。我如何单独使用 kubectl 来做到这一点?
awk 或 cut 也可以完成这项工作,但我想不出一种在不丢失 table 格式的情况下执行此操作的方法。
在 kubectl 中没有明确支持选择列的子集,但有几种方法可以实现这一点。您已经提到 awk
可以与 column -t
配对以获得漂亮的 table 格式:
$ kubectl get pods --all-namespaces | awk {'print " " '} | 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 输出来创建自定义输出(您也可以将其与列配对),例如打印 pod 名称和 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
而不是像 awk 和列那样使用第二个 tool/binary。你可以这样使用标志 -o=custom-columns
:
kubectl get pods --all-namespaces -o=custom-columns=NAME:.metadata.name,Namespace:.metadata.namespace
这也是一种比 go-templates 或 jsonpath 更简单的输出自定义列的方法!
我使用 tmuxinator 生成一个 tmux window 来监视一些 kubectl 命令的输出,例如:
watch -n 5 kubectl get pods/rc/svc/pv/pvc
但有时 Kubectl 的输出会变得太宽,即滚动更新后的选择器列,我不想在我的设置中显示它。我如何单独使用 kubectl 来做到这一点?
awk 或 cut 也可以完成这项工作,但我想不出一种在不丢失 table 格式的情况下执行此操作的方法。
在 kubectl 中没有明确支持选择列的子集,但有几种方法可以实现这一点。您已经提到 awk
可以与 column -t
配对以获得漂亮的 table 格式:
$ kubectl get pods --all-namespaces | awk {'print " " '} | 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 输出来创建自定义输出(您也可以将其与列配对),例如打印 pod 名称和 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
而不是像 awk 和列那样使用第二个 tool/binary。你可以这样使用标志 -o=custom-columns
:
kubectl get pods --all-namespaces -o=custom-columns=NAME:.metadata.name,Namespace:.metadata.namespace
这也是一种比 go-templates 或 jsonpath 更简单的输出自定义列的方法!