You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过kubectl获取K8s主节点上运行的Pod列表?

当然可以!你之前的命令只是按节点名排序,但没法区分主节点和工作节点的角色。要获取主节点上处于Running状态的Pod列表,咱们可以利用K8s主节点自带的角色标签来精准过滤,下面给你几种好用的方法:

方法1:分步过滤(直观易上手)

首先,先拿到所有主节点的名称(K8s主节点通常带有node-role.kubernetes.io/master或node-role.kubernetes.io/control-plane标签,具体取决于你的集群版本):

# 获取所有主节点名称(兼容新旧版K8s)
MASTER_NODES=$(kubectl get nodes --selector='node-role.kubernetes.io/master,node-role.kubernetes.io/control-plane' -o jsonpath='{.items[*].metadata.name}')

接着查询这些节点上状态为Running的所有Pod(记得加--all-namespaces,因为主节点上的系统Pod大多在kube-system这类命名空间里):

kubectl get pods --all-namespaces -o wide --field-selector=status.phase=Running | grep -E "$(echo $MASTER_NODES | tr ' ' '|')"

方法2:用kubectl模板一步输出(无需额外工具)

如果你不想依赖grep,可以用kubectl的Go模板直接关联节点标签和Pod状态,一次性输出结果:

kubectl get pods --all-namespaces -o go-template='
{{- range $pod := .items -}}
{{- if eq $pod.status.phase "Running" -}}
{{- $nodeName := $pod.spec.nodeName -}}
{{- $node := (kubectl get node $nodeName -o json | fromJson) -}}
{{- if or (index $node.metadata.labels "node-role.kubernetes.io/master") (index $node.metadata.labels "node-role.kubernetes.io/control-plane") -}}
{{ $pod.metadata.namespace }}/{{ $pod.metadata.name }}	{{ $nodeName }}
{{- end -}}
{{- end -}}
{{- end -}}'

要是你的kubectl版本不支持fromJson,可以搭配jq工具(需要提前安装)来处理JSON输出:

kubectl get pods --all-namespaces -o json | jq -r '
.items[]
| select(.status.phase == "Running")
| .spec.nodeName as $nodeName
| (kubectl get node $nodeName -o json | fromjson) as $node
| select($node.metadata.labels["node-role.kubernetes.io/master"] or $node.metadata.labels["node-role.kubernetes.io/control-plane"])
| [.metadata.namespace, .metadata.name, $nodeName] | @tsv'

小提示:确认主节点标签

如果上面的命令没返回结果,可能你的主节点用了自定义角色标签。可以先查看所有节点的标签来确认:

kubectl get nodes --show-labels

找到主节点对应的角色标签(比如node-role.kubernetes.io/my-control-plane),然后替换命令里的selector就行。

内容的提问来源于stack exchange,提问作者shiv455

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:06:21