如何仿照docker ps格式化kubectl get pods输出,仅显示名称与状态?
实现kubectl自定义输出Pod名称和状态
当然可以!kubectl和docker一样支持自定义格式化输出,完全能满足你只打印Pod名称和状态的需求,具体通过--format参数就能实现:
逗号分隔格式(和docker风格一致)
如果你想要和docker ps --format "{{.Status}},{{.Name}}"完全匹配的逗号分隔输出,直接执行这条命令:
kubectl get pods test --format "{{.metadata.name}},{{.status.phase}}"
这里的字段对应关系:
{{.metadata.name}}:对应Pod的名称,等价于docker里的.Name{{.status.phase}}:对应Pod的当前状态(比如Running、Pending、Completed等),对应docker的.Status
更易读的表格格式
如果觉得逗号分隔不够直观,还可以输出表格形式,看起来更清晰:
kubectl get pods test --format "table{{.metadata.name}}\t{{.status.phase}}"
默认表头会显示METADATA.NAME和STATUS.PHASE,要是想自定义更简洁的表头,可以这么写:
kubectl get pods test --format "table{{.metadata.name}}:NAME\t{{.status.phase}}:STATUS"
这样表头就会变成NAME和STATUS,和docker ps的输出风格更贴近。
扩展:查看所有Pod的信息
如果你的需求不局限于test这个Pod,而是所有Pod,去掉命令里的test即可:
kubectl get pods --format "{{.metadata.name}},{{.status.phase}}"
内容的提问来源于stack exchange,提问作者Itay Gil
相关产品推荐
相关产品推荐

