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

从AKS的AGIC附加组件切换至Helm部署的AGIC的方法及相关问题咨询

从AKS的AGIC附加组件切换至Helm部署的AGIC的方法及相关问题咨询

我来帮你一步步解决这两个问题:

一、解决从AGIC附加组件切换到Helm部署时的IngressClass错误

你遇到的这个错误,核心原因是AKS AGIC附加组件自动创建的azure-application-gateway IngressClass,没有携带Helm管理所需的元数据标签和注释。Helm在安装时会校验资源归属,发现该资源并非Helm创建,就会拒绝导入。这里给你两种解决思路,更推荐第一种干净无隐患的方式:

方法1:删除原附加组件创建的IngressClass后重新安装

  1. 先确认当前IngressClass的状态:
    kubectl get ingressclass azure-application-gateway
    
  2. 备份这个IngressClass的配置(以防后续需要恢复):
    kubectl get ingressclass azure-application-gateway -o yaml > agic-ingressclass-backup.yaml
    
  3. 删除附加组件创建的IngressClass:
    kubectl delete ingressclass azure-application-gateway
    

    不用担心流量中断,删除IngressClass只是移除了Ingress与AGIC的关联标识,已配置的应用网关规则不会立刻失效,等Helm版AGIC接管后会自动同步最新规则。

  4. 重新执行你的Helm安装命令,这次Helm会创建属于自己管理的azure-application-gateway IngressClass,就能顺利完成安装了。

方法2:手动修改现有IngressClass的元数据(不推荐,易留隐患)

如果不想删除现有IngressClass,可以手动给它补上Helm要求的标签和注释:

kubectl annotate ingressclass azure-application-gateway meta.helm.sh/release-name=ingress-azure-1710484411
kubectl annotate ingressclass azure-application-gateway meta.helm.sh/release-namespace=ingress-nginx
kubectl label ingressclass azure-application-gateway app.kubernetes.io/managed-by=Helm

修改完成后再重新执行Helm安装命令就能通过校验,但这种方式会让IngressClass同时被附加组件和Helm“半管理”,后续升级或维护可能出现冲突,所以更推荐第一种删除重建的方式。

二、解决多AKS集群共享应用网关时手动切换路由表的问题

你遇到的手动切换路由表的问题,本质是每个AKS集群关联应用网关时,会自动创建专属路由表并绑定到网关子网,但子网只能关联一个路由表,导致两个集群的路由表冲突。这里有两个可行的解决方案:

方案1:手动合并路由表规则

  1. 分别导出两个AKS集群自动创建的路由表规则:找到每个AKS对应的路由表(通常在应用网关所在资源组,名称带aks-前缀),查看其中的路由条目——这些条目主要是将AKS节点子网的流量指向各自的VNet对等连接或节点池。
  2. 创建一个新的路由表,把两个集群的路由条目合并进去(注意避免重复或冲突的路由)。
  3. 将应用网关的子网关联到这个合并后的路由表,这样两个AKS集群的流量都能通过该路由表正确转发,无需再手动切换。

方案2:利用AGIC多集群能力实现自动化管理

如果你的两个AKS集群在同一个VNet或已通过VNet对等连接打通,推荐这种更自动化的方式:

  1. 为每个AKS集群分别部署独立的Helm版AGIC实例:
    • 每个AGIC的Helm配置中,指定对应的aks.clusterName和aks.resourceGroup,同时确保appgw.resourceGroup和appgw.name指向同一个应用网关。
    • 为每个AGIC配置watchNamespace参数,让它们只监听各自集群内的指定命名空间(避免跨集群Ingress规则冲突)。
  2. 两个AGIC实例会各自同步对应集群的Ingress规则到同一个应用网关,网关会自动合并这些规则。
  3. 路由表方面,只要合并后的路由表包含两个AKS集群的节点子网路由,流量就能同时转发到两个集群的服务,无需手动切换。

这样就能实现两个AKS集群共享同一个应用网关的自动化管理,不用再手动操作路由表啦。

备注:内容来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:28:03