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

AKS集群中Ingress外部IP频繁变更的原因排查

问题原因分析

你的Ingress IP频繁切换,核心原因是多个Ingress Controller在争抢处理同一个Ingress资源,具体细节如下:

  1. IngressClass与Controller的匹配冲突
    标准的ingress-nginx部署会创建名为nginx的IngressClass,同时Controller容器会通过--ingress-class=nginx参数声明自己监听这个类的Ingress资源。你修改部署文件时只替换了命名空间名称,但没有修改Controller的--ingress-class参数和对应的IngressClass资源名称,导致三个Controller(默认的、外部的、内部的)都在监听nginx这个IngressClass。当你把Ingress的ingressClassName设为nginx时,三个Controller会同时尝试更新该Ingress的ADDRESS字段,各自把自己的LoadBalancer IP写进去,就造成了IP频繁切换的现象。

  2. IngressClassName配置不匹配
    当你设置ingressClassName: external-ingress时,由于不存在对应名称的IngressClass资源,部分Controller(比如默认的nginx类Controller)可能依然会尝试处理这个Ingress(如果没有设置严格的类匹配),导致IP时而切换到默认Controller的IP;而外部Controller因为没有监听external-ingress这个类,无法正确处理,所以IP变更后无法正常工作。

解决方案

要解决这个问题,必须让每个Ingress Controller对应唯一的IngressClass,实现资源隔离:

1. 修改每个Controller的监听类参数

针对三个Controller的Deployment,分别修改容器启动参数中的--ingress-class为唯一值:

  • 默认Controller(ingress-nginx命名空间):保留--ingress-class=nginx
  • 外部Controller(external-ingress命名空间):改为--ingress-class=external-nginx
  • 内部Controller(internal-ingress命名空间):改为--ingress-class=internal-nginx

你可以通过以下命令修改Deployment:

kubectl edit deployment ingress-nginx-controller -n external-ingress

找到容器的args列表,添加或修改--ingress-class=external-nginx参数。

2. 创建对应名称的IngressClass资源

为每个Controller创建独立的IngressClass,确保spec.controller字段指向对应Controller的服务账号(格式为namespace/controller-serviceaccount-name)。例如,外部Controller的IngressClass YAML:

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: external-nginx
spec:
  controller: k8s.io/ingress-nginx

注意:spec.controller的值要和Controller部署中--controller-class参数一致(默认是k8s.io/ingress-nginx,如果修改过也要对应调整)。

3. 修正Ingress资源的ingressClassName

将你的外部Ingress的ingressClassName设为external-nginx,内部Ingress设为internal-nginx,确保每个Ingress只被对应的Controller处理。

4. 验证配置

修改完成后,执行以下命令确认IngressClass和Controller的匹配状态:

kubectl get ingressclass
kubectl get pods -n external-ingress -w # 查看外部Controller是否正常运行
kubectl get ing -w # 观察Ingress的ADDRESS是否稳定在对应Controller的LB IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:09:24