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

误删AWS Classic ELB后,K8s Ingress仍指向旧地址如何处理?

解决K8s Ingress仍绑定旧AWS Classic ELB的问题

核心处理步骤

K8s关联的AWS ELB由对应负载均衡控制器维护生命周期,手动删除ELB后控制器可能未自动触发重建,按以下步骤处理:

  • 彻底重建Ingress资源

    1. 先导出当前Ingress配置备份:
      kubectl get ing my-ingress-name -o yaml > ingress-backup.yaml
      
    2. 删除现有Ingress:
      kubectl delete ing my-ingress-name
      
    3. 等待2-3分钟,让K8s控制器清理旧ELB的关联资源(如Service的目标组绑定)
    4. 重新应用Ingress配置:
      kubectl apply -f ingress-backup.yaml
      

    此时控制器会自动创建新Classic ELB,并更新Ingress的ADDRESS字段。

  • 重启AWS负载均衡控制器
    若集群使用AWS Load Balancer Controller(原ALB Ingress Controller)管理ELB,重启控制器Pod可触发状态同步:

    kubectl rollout restart deployment aws-load-balancer-controller -n kube-system
    

    可通过日志观察重建动作:

    kubectl logs -n kube-system deployment/aws-load-balancer-controller -f
    
  • 清理硬编码ELB注解
    检查Ingress或关联Service是否存在强制绑定旧ELB的注解:

    kubectl describe ing my-ingress-name
    

    若发现service.beta.kubernetes.io/aws-load-balancer-name这类注解,删除后重新应用配置:

    kubectl annotate ing my-ingress-name service.beta.kubernetes.io/aws-load-balancer-name-
    kubectl apply -f ingress-backup.yaml
    
  • 确认AWS侧旧ELB彻底删除
    登录AWS控制台,确保旧ELB为彻底删除状态(而非仅停用),残留的旧ELB会导致控制器误判关联状态,无法创建新ELB。

注意:不要手动在AWS控制台创建ELB,K8s控制器会自动管理ELB生命周期,手动创建的ELB无法被K8s自动识别关联,反而引发状态冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:28