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

删除EKS Ingress后AWS ALB监听器未自动移除问题求助

问题原因分析
  1. ALB删除保护限制:原Ingress配置了alb.ingress.kubernetes.io/load-balancer-deletion-protection: "true"注解,该注解会阻止AWS ALB Controller对ALB执行修改或清理监听器绑定规则的操作。当旧Ingress(绑定first-test-api服务)被Helm替换删除后,Controller无法自动更新ALB上的旧监听器关联。
  2. Helm资源的独立性:将Chart从test-api重命名为main-api后,新的first-main-api相关K8s资源(包括Ingress)与旧的first-test-api资源完全独立。Helm会删除旧Ingress,但受限于ALB的删除保护,Controller无法同步更新ALB的监听器配置。
解决办法

方法一:临时关闭删除保护触发自动同步

  • 编辑当前生效的Ingress资源(对应first-main-api的Ingress),将删除保护注解修改为:
    alb.ingress.kubernetes.io/load-balancer-deletion-protection: "false"
    
  • 等待1-2分钟,让AWS ALB Controller完成同步,此时旧的监听器绑定会被自动清理,新服务的绑定会生效。
  • 同步完成后,再将注解改回"true",重新启用ALB删除保护。

方法二:确认新Ingress配置覆盖旧规则

  • 检查新Ingress的spec.rules段,确保包含test-api.mydomain.com的Host配置,且后端指向first-main-api服务,示例配置如下:
    spec:
      rules:
      - host: test-api.mydomain.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: first-main-api
                port:
                  number: 80
    
  • 如果新Ingress未配置该Host,Controller不会自动修改旧监听器,需补充配置后再按方法一临时关闭删除保护触发同步。

方法三:清理残留的旧Ingress资源

  • 执行命令确认旧Ingress是否已被Helm删除:
    kubectl get ingress
    
  • 如果旧的first-test-api对应Ingress仍存在,执行删除命令:
    kubectl delete ingress <旧Ingress名称>
    
  • 之后按方法一临时关闭删除保护,让Controller同步清理ALB监听器绑定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:23:07