Azure应用网关K8s Ingress规则优先级配置失效问题咨询
Azure应用网关规则优先级配置方案
首先明确:Azure应用网关Ingress Controller(AGIC)不支持通过Ingress注解appgw.ingress.kubernetes.io/rule-priority设置规则优先级,你使用的这个注解并非官方支持项,因此不会生效,网关会按照默认逻辑分配优先级(比如你看到的19000)。
以下是两种可行的配置方式:
1. 直接修改应用网关规则(手动方式)
你可以跳过K8s配置,直接在Azure控制台或CLI中调整规则优先级:
- Azure Portal操作:进入目标应用网关的「规则」页面,找到对应路由规则,编辑时修改「优先级」字段(数值范围1-20000,数值越小优先级越高)。
- Azure CLI命令示例:
注意:手动修改后,如果后续AGIC同步Ingress资源(比如Ingress更新),可能会覆盖手动设置的优先级,需同步调整Ingress或使用下面的自定义资源方式。az network application-gateway rule update \ --resource-group <你的资源组名称> \ --gateway-name <你的应用网关名称> \ --name <目标路由规则名称> \ --priority 100
2. 使用AGIC自定义资源(K8s配置同步方式)
如果希望通过K8s配置管理优先级,推荐使用AGIC的ApplicationGateway自定义资源(CRD),在其中定义路由规则并指定优先级,AGIC会按照该配置同步网关规则,避免被Ingress覆盖:
apiVersion: azure.com/v1alpha1 kind: ApplicationGateway metadata: name: custom-appgw-config namespace: default spec: rules: - ruleName: foo-bar-io-rule priority: 100 httpListener: listenerName: foo-bar-io-listener backendAddressPool: poolName: type-service-pool backendHttpSettings: settingsName: default-http-settings pathRule: paths: - path: / pathType: Exact
使用该方式需要确保AGIC处于自定义资源模式或混合模式,配置时需对应好网关中已有的监听器、后端池和HTTP设置名称。
内容的提问来源于stack exchange,提问作者Metro
相关产品推荐
相关产品推荐

