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

EKS中应用Ingress后未创建NLB 求助排查

排查NLB未创建的可能原因

以下是针对该问题的具体排查方向:

1. 错误使用Service专属注解

你配置的service.beta.kubernetes.io/aws-load-balancer-type: "nlb"是Kubernetes Service的专属注解,不适用于Ingress资源。AWS Load Balancer Controller创建NLB的正确Ingress注解应为:

alb.ingress.kubernetes.io/load-balancer-type: nlb

替换掉原配置中的service.beta.kubernetes.io/aws-load-balancer-type注解。

2. 未指定匹配的IngressClass

AWS Load Balancer Controller默认仅处理带有指定ingressClassName的Ingress资源:

  • 先确认集群中存在名为alb的IngressClass资源(与控制器默认配置的--ingress-class参数一致)
  • 在Ingress的spec字段中添加:
spec:
  ingressClassName: alb

3. 控制器未监听kube-system命名空间

若AWS Load Balancer Controller部署时通过--watch-namespace参数限制了监听范围,而kube-system不在其中,控制器会忽略该命名空间下的Ingress。检查控制器的部署参数,确保包含kube-system,或移除该参数以监听所有命名空间。

4. 后端服务无可用端点

如果Ingress关联的echoserver服务没有对应的Pod端点(执行kubectl get endpoints echoserver -n kube-system查看),控制器可能不会创建负载均衡器。确认服务已正确关联运行中的Pod。

5. 控制器版本不支持Ingress创建NLB

AWS Load Balancer Controller v2.4.0及以上版本才支持通过Ingress资源创建NLB。检查控制器版本,若版本过低需升级。

6. 注解格式或冲突问题

  • 确保listen-ports的JSON格式正确,实际应用时使用未转义的格式:
alb.ingress.kubernetes.io/listen-ports: '[{"TCP": 80}, {"TCP": 9093}]'
  • 移除alb.ingress.kubernetes.io/scheme注解,NLB无需该配置,避免可能的参数冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:46:15