如何使用kubectl命令列出Kubernetes节点的所有Pod及对应状态
Kubernetes按节点分组查询Pod运行状态命令
可以直接使用kubectl结合shell文本处理命令实现你要的分组输出格式,命令如下:
kubectl get pods -A -o custom-columns='NODE:.spec.nodeName,POD:.metadata.name,STATUS:.status.phase' --no-headers | sort | awk '{if ($1 != prev) {if (NR != 1) print ""; print $1; prev=$1} print $2" "$3}'
命令说明
-A代表查询所有命名空间下的Pod,如果你只需要查询特定命名空间,替换为-n <目标命名空间名称>即可custom-columns自定义输出的三列内容分别为:节点名称、Pod名称、Pod运行状态sort先对查询结果按节点名称排序,方便后续分组awk部分实现按节点分组输出,不同节点的查询结果之间自动加空行分隔,输出结构和你给出的示例完全一致
如果不需要严格的分组空行格式,只需要直观查看按节点排序的Pod状态,也可以直接使用原生kubectl命令:
kubectl get pods -A -o wide --sort-by=.spec.nodeName
可选过滤参数
如果需要过滤掉已经运行完成/失败的终止状态Pod,可以在命令中加入字段选择器参数:--field-selector status.phase!=Succeeded,status.phase!=Failed
内容的提问来源于stack exchange,提问作者angelokh
相关产品推荐
相关产品推荐

