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

如何在Kubernetes的Ingress中引用其他Namespace的Service?

解决Ingress跨命名空间关联Service的问题

要让部署在default命名空间的Ingress关联app命名空间的api-svc,只需在Ingress配置的backend.service节点下添加namespace: app字段即可。Kubernetes默认会优先查找Ingress自身所在命名空间的Service,显式指定namespace就能实现跨命名空间关联目标服务。

修改后的完整YAML配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: api-ingress
  namespace: default  # 显式指定Ingress所在命名空间,不指定默认也是default
spec:
  rules:
    - http:
        paths:
        - path: /api
          pathType: Prefix
          backend:
            service: 
              name: api-svc
              namespace: app  # 新增该行,指定Service所属的命名空间
              port: 
                number: 8100

补充说明

  • 若Ingress未指定metadata.namespace,会默认部署到当前操作上下文的命名空间(此处为default),显式声明更清晰。
  • 需确保app命名空间下的api-svc已正常运行,同时Ingress Controller具备访问该命名空间Service的权限(默认RBAC规则下Ingress Controller通常拥有跨命名空间访问权限,若出现访问问题需检查RBAC配置)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:43:07