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

新建Azure Kubernetes Service(AKS)集群网络不可达问题求助

排查AKS集群LoadBalancer IP和仪表盘隧道不可访问问题

听起来你遇到了AKS集群网络突发故障的麻烦——昨天还正常的公网IP和仪表盘隧道今天突然失效,只能通过az工具连接集群,这确实让人头疼。我来帮你一步步排查可能的原因:

1. 先确认集群和节点的基础状态

首先得确保集群本身没有处于异常状态:

  • 检查集群的部署状态:
    az aks show --resource-group <你的资源组名称> --name <AKS集群名称> --query provisioningState
    
    正常应该返回Succeeded。
  • 检查节点池的状态:
    az aks nodepool list --resource-group <你的资源组名称> --cluster-name <AKS集群名称> --query "[].provisioningState"
    
    所有节点池都应该是Succeeded。
  • 用kubectl查看节点状态:
    kubectl get nodes
    
    所有节点的状态应该是Ready,如果有NotReady或者其他异常,那节点层面可能出了问题(比如节点重启、资源耗尽)。

2. 排查LoadBalancer服务的异常

既然公网IP无法访问,先聚焦到LoadBalancer类型的服务上:

  • 列出所有LoadBalancer服务,查看公网IP和状态:
    kubectl get svc -o wide
    
    重点看EXTERNAL-IP列,是不是显示的是你之前能用的IP,状态有没有变成Pending(如果是,说明Azure没有成功创建/绑定负载均衡器)。
  • 查看具体LB服务的详细信息,重点看Endpoints和事件:
    kubectl describe svc <你的LoadBalancer服务名称>
    
    • 检查Endpoints字段:有没有关联到正常运行的Pod IP?如果是空的,说明服务和Pod的标签匹配有问题,或者Pod本身没在运行。
    • 检查Events部分:有没有类似Failed to create loadbalancer或者健康检查失败的提示?这可能指向Azure负载均衡器资源的创建/配置问题。

3. 排查仪表盘隧道(az aks browse)的问题

仪表盘隧道连不上,先确认仪表盘组件本身是否正常:

  • 查看kube-system命名空间下的仪表盘Pod状态:
    kubectl get pods -n kube-system -l k8s-app=kubernetes-dashboard
    
    正常应该是Running状态,如果是CrashLoopBackOff或者Error,需要查看Pod日志:
    kubectl logs -n kube-system <仪表盘Pod名称>
    
  • 查看仪表盘服务状态:
    kubectl get svc -n kube-system kubernetes-dashboard
    
  • 另外,把你执行az aks browse时的完整错误信息贴出来会很有帮助——比如有没有权限提示?隧道建立失败的具体原因?是不是本地的8001端口被占用了?

4. 检查Azure底层网络资源状态

AKS的LoadBalancer依赖Azure的公共IP和负载均衡器资源,这些资源可能出现异常:

  • 首先找到AKS的节点资源组(一般格式是MC_<你的资源组>_<集群名>_<区域>):
    az aks show --resource-group <你的资源组> --name <集群名> --query nodeResourceGroup -o tsv
    
  • 检查该资源组下的负载均衡器状态:
    az network lb list --resource-group <节点资源组名称> --query "[].{Name:name, ProvisioningState:provisioningState}"
    
  • 检查对应的公共IP资源:
    az network public-ip list --resource-group <节点资源组名称> --query "[].{Name:name, ProvisioningState:provisioningState, IPAddress:ipAddress}"
    
    确认这些资源的状态都是Succeeded,IP地址和你之前使用的一致。

5. 排查网络安全组(NSG)和防火墙规则

有可能是NSG规则变更阻止了流量:

  • 查看节点NSG的入站规则,确认允许HTTP/HTTPS(80/443端口)的流量:
    az network nsg rule list --resource-group <节点资源组名称> --nsg-name <节点NSG名称> --query "[].{Name:name, Direction:direction, Access:access, DestinationPortRange:destinationPortRange}"
    
    正常应该有允许80、443端口入站的规则。
  • 另外,检查本地防火墙是否阻止了az aks browse使用的8001端口,或者你的网络环境有没有限制出站到AKS集群的流量。

如果以上步骤还没找到问题,建议你把kubectl describe svc <LB服务名>的输出、仪表盘Pod的日志,以及az aks browse的完整错误信息贴出来,这样能更精准地定位问题。

内容的提问来源于stack exchange,提问作者Daniel J. Pritchett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:01:45