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

如何查询作用于指定Kubernetes Service的Ingress资源

查询绑定指定Kubernetes Service的Ingress资源的方法

kubectl 没有原生的直接查询作用于特定Service的Ingress的命令,但可以通过参数过滤实现需求,下面是两种常用方案:

方案1:使用内置jsonpath过滤(无需额外安装工具)

如果要查询指定命名空间下,绑定名为<target-svc-name>的Service的所有Ingress,执行以下命令:

kubectl get ingress -n <namespace> -o jsonpath='{range .items[?(@.spec.rules[*].http.paths[*].backend.service.name=="<target-svc-name>")]}{.metadata.name}{"\n"}{end}'

如果要查询集群所有命名空间下的对应Ingress,把-n <namespace>换成-A即可:

kubectl get ingress -A -o jsonpath='{range .items[?(@.spec.rules[*].http.paths[*].backend.service.name=="<target-svc-name>")]}{.metadata.namespace}{"/"}{.metadata.name}{"\n"}{end}'

注:上述命令适配K8s 1.19及以上版本的Ingress v1稳定API。

方案2:使用jq工具过滤(可读性更高)

如果环境已安装jq工具,可以用更简洁的语法实现过滤:

kubectl get ingress -n <namespace> -o json | jq '.items[] | select(.spec.rules[].http.paths[].backend.service.name == "<target-svc-name>") | .metadata.name'

如果需要输出更多关联信息,比如Ingress配置的域名、路径等,只需要修改jq的输出字段即可。

注意事项

  • 如果你的集群使用的是1.19版本之前的旧版Ingress API(extensions/v1beta1、networking.k8s.io/v1beta1),只需要把上述命令中的字段路径.backend.service.name替换为.backend.serviceName即可正常过滤。
  • 如果Ingress配置了默认backend(没有匹配规则时默认转发到某个Service),上述命令没有覆盖该场景,如需排查默认backend的关联,需要单独过滤.spec.defaultBackend.service.name字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:08