Kubernetes LoadBalancer服务无法响应URI请求排查求助
排查步骤
- 安全组校验
首先验证两层安全组规则:- AWS自动创建的ELB安全组入站方向是否放开了80端口,允许你当前访问的源IP段访问
- Kubernetes集群工作节点的安全组入站方向是否放开了Service对应的NodePort(你当前配置为32357),允许ELB的IP段访问
- ELB健康检查校验
登录AWS控制台查看该ELB的后端实例(即集群工作节点)健康状态,如果健康检查失败,ELB会自动摘除故障节点导致无响应。默认Kubernetes创建的ELB健康检查会基于NodePort进行探测,需要确认节点对应端口没有被防火墙拦截。 - 链路逐层测试
按从内到外的顺序验证链路连通性:- 集群内部执行
curl 10.103.184.182验证ClusterIP到Pod的链路是否正常 - 集群外执行
curl <节点公网IP>:32357验证NodePort层面是否可正常访问 - 若前两步正常仅ELB域名无法访问,问题可确定出在ELB本身配置层面
- 集群内部执行
- Endpoint校验
执行kubectl get endpoints web查看输出是否关联了对应Pod的IP和80端口,确认Service的app:web标签选择器正确匹配到了后端Pod。 - ELB监听器校验
确认ELB的监听器规则为TCP 80转发到后端实例的TCP 32357,和Service配置的NodePort保持一致。
如果使用的是AWS EKS服务,还需要确认ELB所在的公有子网已关联互联网网关,且子网开启了自动分配公网IP的属性。
内容的提问来源于stack exchange,提问作者xnextion
相关产品推荐
相关产品推荐

