如何为AKS使用的Azure Disk动态持久卷设置磁盘容量告警
AKS动态Azure Disk持久卷容量告警配置方案
完全可以实现动态创建的Azure Disk持久卷的容量告警,有两种主流落地方式:
方案1:使用Azure Monitor原生告警(无需额外部署集群组件)
- 首先确认AKS集群已启用*容器洞察(Container Insights)*功能,默认开启的场景下会自动采集所有持久卷的使用率、剩余容量等指标
- 进入Azure门户对应AKS集群页面,左侧菜单栏找到「监控」分类下的「告警」,点击「创建」->「预警规则」
- 作用范围选择当前AKS集群,在「条件」配置页选择指标为
Persistent Volume Used Percentage,维度可以按需求筛选:如果要给所有Azure Disk动态PV配置告警,就筛选Storage Class Name为你的Azure Disk CSI存储类(默认是managed-csi);如果只给特定业务的PV配置,就筛选Persistent Volume Name或关联的PVC名称 - 设置告警阈值:例如设置阈值为80%,即PV使用率超过80%触发告警,评估频率可按业务需求设置为5/10/15分钟
- 配置「操作组」,选择需要的通知渠道(邮件、短信、Azure服务通知、自定义Webhook等),保存后告警规则即可生效
方案2:使用集群内Prometheus + Alertmanager告警(适合已部署Prometheus监控栈的场景)
- 首先确认集群内已部署kube-state-metrics和node-exporter,Prometheus已正常采集
kubelet_volume_stats_used_bytes、kubelet_volume_stats_capacity_bytes两个核心PV指标 - 新增如下Prometheus告警规则,可匹配所有Azure Disk动态PV的使用率阈值判断:
groups: - name: persistent-volume-alert rules: - alert: PersistentVolumeHighUsage expr: 100 * kubelet_volume_stats_used_bytes{storageclass=~".*disk.*csi.*"} / kubelet_volume_stats_capacity_bytes{storageclass=~".*disk.*csi.*"} > 80 for: 5m labels: severity: warning annotations: summary: "持久卷使用率超过80%" description: "关联PVC {{ $labels.persistentvolumeclaim }} 当前使用率为 {{ $value | humanizePercentage }},PV总容量为 {{ $value | humanizeBytes }}"
- 将规则同步到Prometheus配置或
PrometheusRuleCRD(使用kube-prometheus-stack的场景),配置Alertmanager对应的通知渠道即可收到告警
额外优化建议
你可以同步开启Azure Disk PV的自动扩容能力,只需在对应Azure Disk存储类的配置中设置allowVolumeExpansion: true,后续出现空间不足告警时,直接修改PVC的spec.resources.requests.storage字段即可自动完成PV扩容,无需手动操作底层Azure Disk资源。
内容的提问来源于stack exchange,提问作者pers
相关产品推荐
相关产品推荐

