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

在AWS EKS中启用持久化卷部署TimescaleDB-Single(Helm)失败求助

AWS EKS上TimescaleDB-Single Helm部署PVC Pending问题排查与解决

问题分析

启用data和wal持久化卷后PVC处于Pending状态,核心原因是EKS集群无法根据指定的StorageClass自动创建匹配的PV,或是StorageClass配置、集群权限存在异常。

排查步骤

  • 检查StorageClass可用性
    执行命令查看集群中的存储类:

    kubectl get storageclasses.storage.k8s.io
    

    确认gp2存储类是否存在,且其PROVISIONER字段为ebs.csi.aws.com(AWS推荐的EBS CSI驱动)或kubernetes.io/aws-ebs(旧驱动)。

  • 查看PVC事件详情
    先获取Pending状态的PVC名称,再查看具体事件:

    kubectl get pvc
    kubectl describe pvc <PVC_NAME>
    

    事件日志会明确提示失败原因,比如节点权限不足、可用区资源配额不够、StorageClass参数错误等。

  • 验证节点IAM权限
    EKS节点的IAM角色必须包含创建、挂载EBS卷的权限,比如附加AmazonEBSCSIDriverPolicy策略,否则CSI驱动无法生成PV。

修复方案

1. 配置正确的StorageClass

如果gp2存储类不存在,创建标准gp2存储类配置:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gp2
provisioner: ebs.csi.aws.com
parameters:
  type: gp2
  fsType: ext4
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

应用配置:

kubectl apply -f storageclass-gp2.yaml

2. 确认EBS CSI驱动已安装

检查CSI驱动控制器Pod状态:

kubectl get pods -n kube-system -l app=ebs-csi-controller

若未运行,可通过eksctl或Helm安装EBS CSI驱动。

3. 调整Values配置(若需要)

确保values.yaml中的参数符合EBS卷要求:

  • accessModes仅使用ReadWriteOnce(EBS卷不支持多节点挂载)
  • 卷大小满足AWS最小限制(gp2卷最小1Gi,你的配置已符合)

4. 重新部署

卸载现有实例后重新安装:

helm uninstall timescaledb-eks
helm install timescaledb-eks -f timescaledb-single/values.yaml timescale/timescaledb-single --atomic --dependency-update

额外提示

  • 若使用Fargate节点,EBS卷无法挂载,需切换为EC2节点或改用EFS存储
  • 检查节点所在可用区的EBS资源配额,避免因资源不足导致PV创建失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:34:51