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

Ubuntu下使用Azure CLI连接AKS集群后无法获取节点信息

解决AKS集群创建后kubectl无法获取节点的问题

我之前帮几个朋友排查过一模一样的问题,咱们一步步来定位解决:

1. 先确认kubectl的凭据是否正确配置

首先别着急,先重新执行凭据导入命令,覆盖掉可能存在的旧配置:

az aks get-credentials --resource-group <你的资源组名称> --name <你的AKS集群名称> --overwrite-existing

然后检查当前kubectl上下文是不是指向你的AKS集群:

kubectl config current-context

如果输出不是你的AKS集群名,用下面的命令切换过去:

kubectl config use-context <你的集群上下文名称>

2. 验证本地到AKS API服务器的网络连通性

很多时候问题出在网络上,AKS的API服务器需要能被你的Ubuntu机器访问:

  • 先提取API服务器地址:
    kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'
    
  • 用telnet测试443端口是否能连通(AKS API默认走443):
    telnet <上面得到的API地址> 443
    

如果连接失败,大概率是你的Ubuntu机器所在网络(比如公司内网防火墙、本地NSG)挡住了流量。这时候需要在Azure门户的AKS集群设置里,把你的Ubuntu机器公网IP添加到API服务器授权IP范围里。

3. 检查AKS集群本身的运行状态

有时候集群还在后台部署或者更新,导致kubectl暂时无法访问:

  • 检查集群的部署状态:
    az aks show --resource-group <资源组名> --name <集群名> --query provisioningState
    

正常输出应该是Succeeded,如果是Updating或者其他状态,等个10-15分钟再试。

  • 检查节点池的状态:
    az aks nodepool list --resource-group <资源组名> --cluster-name <集群名> --query '[].provisioningState'
    

确保所有节点池都显示Succeeded。

4. 确认RBAC权限是否足够

如果你用的不是创建集群的用户登录Azure CLI,可能没有权限查看节点信息:

  • 先确认当前登录的Azure账户:
    az account show
    

如果不是集群创建者,需要给这个账户分配Azure Kubernetes Service Cluster Admin Role或者Azure Kubernetes Service Cluster User Role到AKS集群资源上。

5. 清理本地kubeconfig缓存(终极方案)

如果以上步骤都没用,可能是本地kubeconfig有缓存损坏:

  • 先备份当前配置:
    cp ~/.kube/config ~/.kube/config.bak
    
  • 删除旧配置:
    rm ~/.kube/config
    
  • 重新获取凭据:
    az aks get-credentials --resource-group <资源组名> --name <集群名>
    

另外补充个小细节:确保你本地kubectl的版本和AKS集群的Kubernetes版本兼容(小版本差不超过1即可),可以用下面的命令分别查看:

  • 本地kubectl版本:kubectl version --short
  • AKS集群版本:az aks show --resource-group <资源组名> --name <集群名> --query kubernetesVersion

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:50:49