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

Azure应用网关Ingress混合FQDN与通配符致应用不可用是否为预期行为?

问题描述

我有一个包含多个微服务和多条Ingress规则的应用,部署到Azure后出现异常:只要某一条Ingress规则存在问题,整个应用就无法访问。我的Ingress配置结构如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app1-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
    appgw.ingress.kubernetes.io/request-timeout: "86400"
spec:
  tls:
    - hosts:
        - abc.myhost.com
      secretName: app-tls-secrets
  rules:
    - host: abc.myhost.com
      http:
        paths:
          - path: /somepath
            backend:
              service:
                name: app1
                port:
                  number: 8080
            pathType: Prefix

经观察发现,仅当所有Ingress的主机名统一为FQDN(完全限定域名)或统一为通配符(如*.myhost.com)时,应用才可通过Azure网关正常访问;若部分Ingress使用FQDN、部分使用通配符,则应用无法访问。请问这是Azure的预期行为吗?

回答

这是Azure应用网关Ingress Controller(AGIC)的预期行为,具体原因如下:

  • AGIC在同步Ingress规则到Azure应用网关时,会按主机名维度管理路由规则。当同一根域名下同时存在FQDN(如abc.myhost.com)和通配符(如*.myhost.com)的Ingress规则时,会触发路由规则冲突逻辑,导致AGIC无法正确生成网关配置,进而使整个应用的路由失效。
  • AGIC默认采用全量同步模式:只要有一条Ingress规则配置无效或存在冲突,整个网关配置的同步就会失败,所有已有的路由规则也无法正常生效,这就解释了单条Ingress出问题会导致整个应用无法访问的现象。

若需混合使用FQDN和通配符规则,可参考以下方案:

  • 将同一根域名下的FQDN和通配符规则合并到同一个Ingress资源中,避免分散在多个Ingress实例里。
  • 确保TLS证书覆盖所有涉及的主机名(包括通配符和具体FQDN),避免因证书不匹配导致同步失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:48:21