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

在EKS上部署Prometheus遇Pod Pending问题:PVC等待卷创建

问题分析与解决方案

核心原因

你遇到的VolumeBinding错误和PVC pending状态,本质是Kubernetes无法通过指定的gp2存储类自动创建对应的EBS持久卷(PV)。常见触发原因包括:

  • EKS集群默认存储类已切换为gp3(AWS新集群不再默认预装gp2存储类)
  • 当前AWS区域的EBS卷配额耗尽
  • EKS节点IAM角色缺少创建EBS卷的权限

分步解决步骤

1. 先确认集群存储类情况

执行命令查看当前集群的存储类列表:

kubectl get storageclasses

如果输出里没有gp2,说明你的集群默认用的是gp3,直接修改Helm配置重新部署:

helm upgrade prometheus prometheus-community/prometheus \
    --namespace prometheus \
    --set alertmanager.persistentVolume.storageClass="gp3" \
    --set server.persistentVolume.storageClass="gp3"

2. 排查配额与权限问题

如果gp2存储类存在但PVC仍pending:

  • 登录AWS控制台,进入EC2服务查看EBS卷配额,确认当前区域的gp2卷配额未用尽
  • 检查EKS节点的IAM角色,确保包含AmazonEBSCSIDriverPolicy权限(EKS 1.23+版本依赖EBS CSI驱动创建卷,必须有这个权限)

3. 临时绕过持久化(适合测试场景)

如果只是为了快速验证Prometheus功能,完全可以禁用持久化存储,跳过PVC配置:

helm upgrade prometheus prometheus-community/prometheus \
    --namespace prometheus \
    --set alertmanager.persistentVolume.enabled=false \
    --set server.persistentVolume.enabled=false

更简便的部署方式

针对大学项目这类测试场景,推荐用kube-prometheus-stack Helm chart,它集成了Prometheus、Grafana、Alertmanager全套监控组件,配置更省心:

kubectl create namespace monitoring
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
    --namespace monitoring \
    --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName="gp3" \
    --set grafana.enabled=true

这个chart会自动处理大部分依赖,一键搭建完整的K8s监控栈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:11:20