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

如何使用kubectl列出特定类型的Service?

筛选特定类型Kubernetes Service的正确姿势

之前我一直用下面的命令筛选指定类型的Service:

kubectl get svc --field-selector spec.type=LoadBalancer
kubectl get svc --field-selector spec.type=ClusterIP

结果kubectl更新后这些命令直接失效了,查官方文档后发现field-selector根本不支持spec.type这个字段。

试过用grep凑活:

kubectl get svc | grep LoadBalancer

但这种文本匹配的方式太不严谨,万一Service名称里带了LoadBalancer字样就会误判。也试过给所有Service加type标签,然后用选择器筛选:

kubectl get svc --selector type=LoadBalancer

但要给所有Service手动加标签,工作量大还不合理。

靠谱的替代方案

推荐用kubectl内置的JSONPath或者结合jq工具来做精准筛选,既规范又不用额外修改资源:

  1. 用JSONPath直接筛选输出
    要找LoadBalancer类型的Service,直接用JSONPath过滤:
kubectl get svc -o jsonpath='{range .items[?(@.spec.type=="LoadBalancer")]}{.metadata.name}{"\t"}{.spec.type}{"\t"}{.spec.clusterIP}{"\n"}{end}'

这个命令会输出符合条件的Service名称、类型和集群IP,格式和默认输出接近。

  1. 结合jq工具(更灵活)
    如果你的环境装了jq,语法会更直观,还能自定义输出字段:
kubectl get svc -o json | jq '.items[] | select(.spec.type=="LoadBalancer") | {名称: .metadata.name, 类型: .spec.type, 集群IP: .spec.clusterIP}'

输出的结果是结构化的JSON,可读性更强,也方便后续处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:17:10