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

GCE环境下的Ingress是否必须配置defaultBackend字段?

GKE Ingress省略defaultBackend返回503问题说明

该行为是GKE Ingress控制器的未公开实现逻辑导致的:

  • K8s官方Ingress规范仅规定,未配置defaultBackend时,未匹配到任何路由规则的请求由Ingress控制器自行处理,没有强制要求控制器的兜底行为。
  • GKE托管的Ingress控制器(基于Google Cloud负载均衡实现)在未显式配置defaultBackend时,会默认注入一个内部的兜底后端,该后端默认返回503 Server Error。
  • 现有配置里使用了path: /*搭配pathType: ImplementationSpecific的规则,在没有显式defaultBackend的场景下,会触发GKE Ingress的规则解析异常,导致所有请求(包括匹配了host规则的请求)都被误路由到这个默认兜底后端,所以所有服务都会返回503。

修复方案

  • 最简方案:保留显式defaultBackend配置即可,哪怕指向现有规则里的任意一个可用服务,只要配置了该字段,GKE Ingress控制器就能正常解析配置的host路由规则。
  • 可选方案:如果确实不想配置defaultBackend,可以把所有路径规则从/*修改为/,pathType改为Prefix,也可以规避该解析异常问题,但要注意匹配范围是否符合业务需求。

当前注释了defaultBackend的配置如下,取消对应字段的注释即可恢复正常:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  #defaultBackend:
  #  service:
  #    name: test-nginx
  #    port:
  #      number: 80
  rules:
    - host: test.example.com
      http:
        paths:
            - path: /*
              pathType: ImplementationSpecific
              backend:
                service:
                  name: test-nginx
                  port:
                    number: 80
    - host: test2.example.com
      http:
        paths:
          - path: /*
            pathType: ImplementationSpecific
            backend:
              service:
                name: test2
                port:
                  number: 80

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:06:00