亚马逊EKS持久存储无法置备卷 PersistentVolume创建失败问题咨询
报错根本原因
本次报错的核心原因是EBS CSI驱动未在对应EKS v1.21集群中正常部署启用,两个报错的逻辑如下:
storageclass.storage.k8s.io "ebs-sc" not found报错是因为初始配置的StorageClass使用ebs.csi.aws.com作为provisioner,而集群未部署该provisioner对应的CSI驱动组件,集群无法识别该置备器,要么StorageClass未成功注册,要么PVC调用时找不到对应存储类的后端服务。DeadlineExceeded超时报错是因为PVC的卷置备请求无法被匹配的provisioner接收处理,长时间无响应后触发超时。
更换为kubernetes.io/aws-ebs后PV可以正常创建,是因为该置备器属于EKS v1.21及更早版本默认预装启用的树内(in-tree)存储插件,不需要额外部署组件即可正常响应PV置备请求。
两种provisioner的适用场景差异
kubernetes.io/aws-ebs(树内EBS存储插件)- 是Kubernetes早期内置的AWS EBS存储对接实现,EKS v1.23及之前版本默认预装启用,无需额外部署
- 仅支持EBS基础功能,不支持gp3卷、快照、高级加密配置、多挂载卷等新特性
- 已被官方标记为弃用,EKS v1.23及之后版本默认不再内置,后续版本会完全移除
- 适用场景:临时测试、集群版本低于v1.23且不需要EBS新特性的存量业务
ebs.csi.aws.com(EBS CSI驱动)- 是AWS官方推出的容器存储接口(CSI)标准实现,为当前官方推荐的EBS对接方案
- 需要额外在EKS集群中手动部署EBS CSI驱动组件,同时需要为驱动配置对应的IAM权限
- 支持全量EBS特性:包含gp3/io2等全类型卷、卷快照、卷扩容、多挂载、细粒度加密配置等
- 是EKS v1.23及之后版本唯一默认支持的EBS存储置备方案,后续所有新特性都会基于CSI驱动迭代
- 适用场景:所有生产环境、需要使用EBS新特性、集群版本高于等于v1.23的业务场景
内容的提问来源于stack exchange,提问作者cloudviz
相关产品推荐
相关产品推荐

