求助:无法通过Azure Arc Enabled Kubernetes集群查看工作负载及监控集群
Azure Arc Kubernetes集群无法查看工作负载及监控数据的排查方案
一、验证Azure Arc扩展及集群代理状态
- 执行以下命令检查已安装的扩展状态,确保监控、工作负载查看所需的扩展(如Azure Monitor for Containers)处于
Succeeded状态:az k8s-extension list --cluster-name cluster123 --resource-group example1 --cluster-type connectedClusters - 通过kubectl检查Azure Arc相关Pod的运行状态,确保无异常:
重点确认kubectl get pods -n azure-arcarc-agent、cluster-metadata-operator等核心组件Pod处于Running状态,无崩溃或重启循环。
二、排查RBAC权限配置
- 在Azure Portal的目标集群IAM页面,确认当前登录用户拥有Azure Kubernetes Service RBAC Cluster Admin角色,或具备
Microsoft.Kubernetes/connectedClusters/read、Microsoft.Insights/metrics/read等必要权限。 - 检查集群内部RBAC绑定,确认Azure Arc服务账户具备读取集群资源的权限:
若权限不足,可通过以下命令为Arc服务账户授予集群只读权限:kubectl describe clusterrolebinding azure-arc-kube-aad-proxy-rolebindingkubectl create clusterrolebinding arc-read-only --clusterrole=view --serviceaccount=azure-arc:azure-arc-kube-aad-proxy
三、检查监控数据采集链路
- 确认Azure Monitor扩展已关联正确的Log Analytics工作区,执行命令查看工作区关联状态:
az connectedk8s show --name cluster123 --resource-group example1 --query 'properties.monitoringConfiguration' - 查看监控代理Pod日志,排查数据采集失败原因:
重点关注权限报错、网络连接失败等日志信息。kubectl logs -n kube-system -l k8s-app=metrics-agent
四、验证网络连通性
- 确认集群节点可正常访问Azure Arc服务端点,在节点上执行curl测试:
若为私有集群,需确保防火墙或NSG规则允许集群节点向上述端点发起出站请求。curl -I https://management.azure.com curl -I https://eastus.dp.kubernetes.azure.com
五、令牌与会话验证
- 刷新Azure Portal会话,重新获取访问令牌,避免令牌过期或缓存异常。
- 用Azure CLI获取令牌并测试集群资源访问权限:
若测试返回az account get-access-token --resource https://management.azure.com kubectl auth can-i get pods --all-namespacesno,说明K8s集群内部RBAC配置存在问题,需重新调整权限绑定。
内容的提问来源于stack exchange,提问作者michilery
相关产品推荐
相关产品推荐

