You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure AKS服务公网IP访问无响应,咨询Azure侧是否需额外配置

AKS LoadBalancer服务公网IP无响应的Azure侧排查要点

我来帮你梳理下Azure侧还需要检查的几个关键点,毕竟你已经确认了K8s组件状态和NSG端口配置,接下来从Azure基础设施层面排查:

1. 检查负载均衡器的健康探针状态

AKS的LoadBalancer默认会基于Service的端口配置健康探针,如果后端Pod的服务没有正常监听端口,或者探针路径不符合预期,LB会判定后端不健康,拒绝转发流量。

  • 你可以通过Azure门户找到对应的负载均衡器,查看后端池的健康状态,确认所有节点/Pod实例都处于健康状态;
  • 也可以用Azure CLI命令查看探针配置:
    az network lb probe show --resource-group <你的资源组名> --lb-name <AKS自动创建的LB名称> --name <探针名称>
    
  • 另外,先确认容器内服务是否正常:进入Pod执行 kubectl exec -it <你的Pod名称> -- curl localhost:80,看是否能正常返回服务响应。

2. 检查AKS节点子网的路由表

如果你的AKS节点所在子网配置了用户定义路由(UDR),比如指向防火墙、NVA等设备,要确保路由规则没有阻止公网流量和Pod之间的往返。比如:

  • 入站流量:公网→LB→节点→Pod的路径是否通畅;
  • 出站流量:Pod→节点→公网的回包路径是否被拦截。

3. 检查Azure防火墙(若已启用)

如果你的AKS集群部署时搭配了Azure防火墙,需要额外配置:

  • DNAT规则:允许公网流量转发到LoadBalancer的公网IP和目标端口;
  • 应用规则/网络规则:允许Pod的出站流量回源,确保服务能正常响应请求。

4. 验证LoadBalancer公网IP的关联状态

先确认Service的公网IP已经正常分配:

kubectl get svc sample-service

查看EXTERNAL-IP列是否是有效的公网IP,然后到Azure门户搜索这个IP,确认它的状态是已分配,且没有被锁定或配置错误。

5. 检查节点级别的网络安全组(NSG)

除了你配置的公网IP对应的NSG,AKS节点自身的NSG也需要允许LoadBalancer的流量进入:

  • 先查看Service对应的NodePort:kubectl describe svc sample-service,找到NodePort字段;
  • 检查节点NSG的入站规则,是否允许来自LoadBalancer IP段的流量访问这个NodePort(默认AKS会自动配置,但如果手动修改过NSG规则可能会被误删)。

6. 排查容器DNS策略问题

你的Deployment里dnsPolicy配置为xxxxx,如果是自定义DNS配置,可能导致容器内服务无法正常启动或解析依赖,进而出现Pod运行正常但服务无响应的情况。可以临时将dnsPolicy改为默认的ClusterFirst测试,看是否能解决问题。


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

火山引擎 最新活动