如何监控Azure中国区AKS集群?需查看Pod、节点等健康指标
针对Azure中国区AKS集群的监控需求,核心思路和全球版一致,但因为中国区服务独立部署,得用对应的中国区服务组件来配置。下面我把实操步骤和常用监控方法整理给你:
一、先完成AKS与中国区Log Analytics工作区的集成
要监控AKS的状态和指标,首先得把集群和Azure中国区的Log Analytics工作区绑定,这是基础:
通过Azure门户配置:
- 登录Azure中国区门户,找到你的AKS集群
- 在左侧菜单里选「监控」下的「Insights」
- 点击「启用」,如果还没有现成的中国区Log Analytics工作区,直接在弹窗里创建一个(注意要选中国区的区域,比如中国东部2、中国北部1等);如果已有,直接选择对应的工作区即可
通过Azure CLI配置:
先确保CLI切换到中国区环境:az cloud set -n AzureChinaCloud az login然后执行启用命令,替换对应的参数:
az aks enable-addons -a monitoring -n <你的AKS集群名称> -g <资源组名称> --workspace-resource-id <中国区Log Analytics工作区的资源ID>(工作区的资源ID可以在Log Analytics工作区的「属性」里找到)
二、查看Pod、节点的健康状态
绑定完成后,有几个常用途径查看健康:
AKS门户的Insights面板
进入集群的「Insights」页面,切换到「节点」或「Pods」标签:- 节点视图:能看到每个节点的状态(Ready/NotReady等)、CPU/内存使用率,还能点击单个节点查看详细事件
- Pod视图:可以按命名空间筛选,查看每个Pod的运行状态(Running/Pending/Failed等),以及重启次数、所属节点等信息
用Log Analytics查询原始数据
如果需要更灵活的筛选或自定义查询,直接打开绑定的Log Analytics工作区,使用Kusto查询语言:- 查询异常状态的Pod:
KubePodInventory | where ClusterName == "<你的集群名称>" | where Status != "Running" | project Name, Status, Namespace, NodeName, TimeGenerated - 查询节点的健康状态:
KubeNodeInventory | where ClusterName == "<你的集群名称>" | project Name, Status, KubernetesVersion, OsType, LastTransitionTime
- 查询异常状态的Pod:
三、查看CPU、内存等资源指标
资源使用率的监控同样可以通过Insights和Log Analytics实现:
Insights的性能面板
在Insights页面切换到「性能」标签,你可以选择查看节点或Pod层面的CPU、内存、磁盘IO、网络流量等指标,还能按时间范围、命名空间、节点/Pod名称筛选,直观看到资源使用趋势。Log Analytics自定义指标查询
比如要查看最近1小时内节点的平均CPU使用率:Perf | where ObjectName == "K8SNode" | where CounterName == "CPU Usage Percentage" | where ClusterName == "<你的集群名称>" | summarize avg(CounterValue) by Computer, bin(TimeGenerated, 10m)查看Pod的内存使用情况:
KubePodMetrics | where ClusterName == "<你的集群名称>" | project Name, Namespace, MemoryWorkingSetBytes / 1024 / 1024 as MemoryUsageMB, TimeGenerated | order by TimeGenerated desc
一些注意事项
- 确保Log Analytics工作区是Azure中国区的资源,全球版工作区无法和中国区AKS集成
- 权限方面,需要有
Monitoring Reader或Log Analytics Reader这类角色才能查看监控数据 - 集成完成后,大概需要10-15分钟才能看到第一批次的监控数据,别着急哦
内容的提问来源于stack exchange,提问作者Chakith
相关产品推荐
相关产品推荐

