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

如何列出Kubernetes特定节点池的所有节点?支持JSON/awk过滤吗?

列出Kubernetes特定节点池的节点方法

方法1:利用节点标签直接筛选

大多数托管K8s集群(GKE、EKS、AKS)会自动给节点打上对应节点池的标签,直接用kubectl的标签选择器就能过滤:

  • GKE集群:kubectl get nodes -l cloud.google.com/gke-nodepool=<你的节点池名称>
  • EKS集群:kubectl get nodes -l eks.amazonaws.com/nodegroup=<你的节点池名称>
  • AKS集群:kubectl get nodes -l kubernetes.azure.com/agentpool=<你的节点池名称>

如果是自定义节点池(自己给节点打了标签),比如标签键是nodepool、值为my-custom-pool,命令是:
kubectl get nodes -l nodepool=my-custom-pool

方法2:通过JSON元数据精准输出(jsonpath)

如果只需要提取节点名称等特定字段,用jsonpath格式输出更灵活:
以GKE节点池my-nodepool为例:
kubectl get nodes -o jsonpath='{range .items[?(@.metadata.labels.cloud\.google\.com/gke-nodepool=="my-nodepool")]}{.metadata.name}{"\n"}{end}'

自定义标签的情况(比如nodepool=my-custom-pool):
kubectl get nodes -o jsonpath='{range .items[?(@.metadata.labels.nodepool=="my-custom-pool")]}{.metadata.name}{"\n"}{end}'

方法3:用awk过滤输出

先通过--show-labels查看节点的标签列,再用awk匹配目标节点池标签并提取节点名:
比如GKE节点池my-nodepool:
kubectl get nodes --show-labels | awk '/cloud.google.com\/gke-nodepool=my-nodepool/ {print $1}'

自定义标签的情况:
kubectl get nodes --show-labels | awk '/nodepool=my-custom-pool/ {print $1}'

小提示

如果不知道节点池对应的标签键,先选一个节点执行kubectl describe node <节点名称>,在Labels部分找到对应节点池的标识标签即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:20:26