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

如何列出GKE特定节点池中的所有Deployments及相关疑问

获取特定节点池关联的所有Deployment

为什么kubectl没有直接的节点池命令?

是的,Kubernetes原生并没有“节点池”的概念,这是各大云厂商(比如EKS、GKE、AKS)基于Kubernetes扩展的集群管理功能,不同厂商的节点池实现、标识方式都不一样,因此kubectl没有统一的命令来直接列出节点池或关联Deployment。

高效获取特定节点池Deployment的方法

核心思路是利用节点池节点的专属标签(云厂商会给同节点池的节点打上统一标签),先定位节点,再关联Pod和对应的Deployment:

步骤1:确认目标节点池的节点标签

首先查看集群中节点的标签,找到目标节点池对应的标签键值对:

kubectl get nodes --show-labels

不同云厂商的节点池标签示例:

  • GKE:cloud.google.com/gke-nodepool=<节点池名称>
  • EKS:eks.amazonaws.com/nodegroup=<节点池名称>
  • AKS:kubernetes.azure.com/agentpool=<节点池名称>

步骤2:关联节点池到Deployment

可以用kubectl结合jq来一次性筛选出结果,避免手动遍历:

# 替换下面的标签键值对为你的节点池标识
NODEPOOL_LABEL="cloud.google.com/gke-nodepool=my-target-pool"

# 获取所有运行在目标节点池节点上的Pod,关联到对应的Deployment
kubectl get pods --all-namespaces -o json | jq -r --arg label "$NODEPOOL_LABEL" '
# 先获取所有带目标标签的节点名称
($nodes | [.items[] | select(.metadata.labels[$label | split("=")[0]] == $label | split("=")[1]) | .metadata.name]) as $target_nodes
# 遍历所有Pod,筛选运行在目标节点上的
| .items[] | select(.spec.nodeName | IN($target_nodes[]))
# 提取Pod所属的Deployment(从ownerReferences中过滤)
| .metadata.namespace + "/" + (.metadata.ownerReferences[] | select(.kind == "Deployment") | .name)
' | sort | uniq

如果没有jq,也可以用kubectl的自定义列输出,分两步:

  1. 获取目标节点池的所有节点名称:
NODEPOOL_NODES=$(kubectl get nodes -l cloud.google.com/gke-nodepool=my-target-pool -o jsonpath='{.items[*].metadata.name}')
  1. 遍历节点,获取Pod并关联Deployment:
echo $NODEPOOL_NODES | tr ' ' '\n' | xargs -I {} kubectl get pods --all-namespaces --field-selector spec.nodeName={} -o custom-columns=NAMESPACE:.metadata.namespace,DEPLOYMENT:.metadata.ownerReferences[?(@.kind=="Deployment")].name --no-headers | awk '{print $1"/"$2}' | sort | uniq

关于Deployment跨节点池的问题

Deployment本身完全可以跨节点池运行,只要其Pod的调度规则(比如节点亲和性、污点容忍、nodeSelector)没有限制只能调度到单一节点池。一个Deployment的多个Pod可能分散在不同节点池的节点上,所以你筛选出的默认是“至少有一个Pod运行在目标节点池”的Deployment;如果需要“所有Pod都仅运行在目标节点池”的Deployment,还需要额外校验该Deployment的所有Pod都在目标节点池内。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:27