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

如何获取EKS LoadBalancer服务的公网IP及无IP原因排查

问题原因
  • AWS的各类LoadBalancer(经典ELB、应用负载均衡ALB、网络负载均衡NLB)和Kubernetes集成时,LoadBalancer类型的Service状态里默认只会记录ELB的域名,而非单个公网IP。这是因为ELB本质是通过域名提供服务,背后可能对应多个弹性IP(尤其是ALB和NLB),不存在固定的单一公网IP。
  • 你执行kubectl get svc api-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}'返回空,是因为该Service的ingress字段存储的是hostname值,而非ip值。
获取公网IP的方法
  • 解析ELB域名得到对应IP:使用nslookup或dig命令直接解析域名,示例:
    nslookup a609dda14861b4a477883069eeec1c29-1006084812.us-east-1.elb.amazonaws.com
    
    或者
    dig +short a609dda14861b4a477883069eeec1c29-1006084812.us-east-1.elb.amazonaws.com
    
  • 通过K8s获取ELB域名:用jsonpath提取hostname字段,命令如下:
    kubectl get svc api-service -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
    
  • 特殊情况:如果是NLB,部分场景可配置静态公网IP,但默认K8s仍返回域名,你可以通过AWS控制台或AWS CLI查看NLB的IP配置。

内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:42:07