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

如何防止AKS Ingress覆盖Application Gateway现有服务及多集群配置

AKS与Application Gateway集成:避免配置覆盖及多集群共存方案

一、单AKS集群更新Ingress时避免全量覆盖网关配置

核心思路是让AGIC(Application Gateway Ingress Controller)仅管理与自身关联的配置,而非操作整个网关:

  • 启用增量同步模式:部署AGIC时添加启动参数--enable-incremental=true,开启后AGIC仅同步Kubernetes中Ingress资源对应的网关配置项,不会覆盖或删除网关中手动创建的、不属于该Ingress的资源(如独立后端池、探针等)。
  • 使用分段(Segments)隔离配置范围:给Application Gateway创建专属分段,让AGIC仅负责该分段内的配置更新:
    1. 在Ingress资源中添加注解:appgw.ingress.kubernetes.io/segment-name: my-app-segment
    2. 部署AGIC时指定--segment-name=my-app-segment,这样AGIC只会更新该分段下的路由规则、后端池等资源,不影响网关其他部分的配置。
  • 限制AGIC监听的命名空间:部署AGIC时设置--watch-namespace=my-target-namespace,让AGIC仅处理指定命名空间下的Ingress资源,避免触碰网关中其他无关配置。

二、多AKS集群共用同一Application Gateway的冲突规避

关键是让每个集群的AGIC实例各自管理独立的配置域,互不干扰:

  • 为每个集群分配独立分段:给每个AKS集群的AGIC指定专属的分段名称,比如:
    • 集群1的AGIC启动参数:--segment-name=cluster1-segment,对应Ingress添加注解appgw.ingress.kubernetes.io/segment-name: cluster1-segment
    • 集群2的AGIC启动参数:--segment-name=cluster2-segment,对应Ingress添加注解appgw.ingress.kubernetes.io/segment-name: cluster2-segment
      每个AGIC仅更新自己分段内的配置,不会影响其他集群的分段资源。
  • 每个AGIC独立筛选命名空间/标签:让不同集群的AGIC只监听自身集群内的特定命名空间或带指定标签的Ingress,比如集群1的AGIC设置--watch-namespace=cluster1-apps,集群2的设置--watch-namespace=cluster2-apps,实现配置隔离。
  • 强制所有AGIC启用增量同步:所有集群的AGIC都开启--enable-incremental=true,确保每个实例仅操作自身负责的配置项,不会清空整个网关的资源。
  • 标记手动配置资源为非AGIC管理:对于网关中手动创建的全局资源(如公共探针、后端设置),添加标签appgw.ingress.kubernetes.io/managed-by: manual,AGIC会自动忽略这些资源,不会进行修改或删除。

注意事项

  • 分段功能仅支持Application Gateway v2 SKU,需确认网关SKU符合要求。
  • 保持所有AGIC实例的版本一致,避免因版本差异导致的同步逻辑冲突。
  • 变更配置前建议在测试环境验证,确保不会影响现有业务流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:27:12