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

AWS EKS中Service的LoadBalancer External IP未填充Ingress地址问题

AWS EKS Service LoadBalancer External IP 未填充 & Ingress 配置问题排查

核心问题定位

你的配置中缺少关键的Service资源:

  • app.yaml仅定义了Deployment,没有创建对应Service,导致Ingress无法找到后端服务,同时你提到的LoadBalancer类型Service完全未定义。
  • Ingress本身不会生成External IP,对外暴露的IP来自Ingress Controller的LoadBalancer Service(比如Nginx Ingress Controller对应的Service)。

分步解决

1. 补全应用Service配置

给你的Deployment创建Service(ClusterIP类型供Ingress转发,或LoadBalancer类型直接暴露应用),示例YAML:

---
apiVersion: v1
kind: Service
metadata:
  name: p-app-ezycards
  namespace: production
  labels:
    app: p-app-ezycards
spec:
  type: ClusterIP # 若需直接暴露应用,替换为 LoadBalancer
  selector:
    app: p-app-ezycards # 需与Deployment的pod标签匹配
  ports:
    - name: http
      port: 80
      targetPort: 80 # 需与容器端口一致

将上述内容添加到app.yaml或单独保存为app-service.yaml后执行:
kubectl apply -f app-service.yaml -n production

2. 检查Nginx Ingress Controller状态

  • 确认Ingress Controller已部署:
    kubectl get pods -n kube-system -l app=nginx-ingress
  • 检查其Service的External IP:
    kubectl get svc -n kube-system nginx-ingress-controller
    若该Service无External IP,需排查:
    • 是否安装了AWS Load Balancer Controller(EKS中需要它来创建ELB)
    • 集群节点IAM角色是否具备创建ELB的权限(需包含AmazonEKSClusterPolicy等相关权限)

3. 验证Ingress资源状态

执行命令查看Ingress的事件与状态:
kubectl describe ingress p-ezycards-app -n production
重点关注Events字段,排查是否存在"Service not found"、端口不匹配等错误。

4. 额外配置检查

  • 确认Ingress的kubernetes.io/ingress.class: "nginx"注释与集群中Ingress Controller的class一致
  • 若使用LoadBalancer类型的应用Service,检查AWS是否有ELB创建失败的日志(可在AWS Console的EC2负载均衡器页面查看)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:35:06