发生了什么? 我有一个旧的 AWS EKS kubernetes 集群,运行 1.21,所以我决定升级它。升级到 1.23 时,如果没有记错的话,系统提示我需要安装 AWS EBS CSI 驱动程序,所以我通过 AWS 控制台 --> 集群 --> 插件(最新版本)进行了安装
但是,安装插件后,无法创建需要 gp2 卷的 redis 部署,并出现以下错误:
kubectl 描述 pod redis-b9d65796c-psdkw
Warning FailedMount 2s (x5 over 9s) kubelet MountVolume.MountDevice failed for volume "pvc-aed078f4-658f-4656-90c0-44bb8b347e2a" : rpc error: code = Internal desc = could not format "/dev/nvme1n1" and mount it at "/var/lib/kubelet/plugins/kubernetes.io/csi/ebs.csi.aws.com/e252b2dda3ccd485b35aa3719d2930464320c09504b4a63d2d029e7e64d42c99/globalmount": failed to get disk format of disk /dev/nvme1n1: exit status 127
您期望发生什么? 我希望该卷能够正确安装,因为它可以正确连接到 eks 工作节点并且正确格式化为 ext4。
如何重现它(尽可能最少且精确)? 在 kubernetes 集群中部署一个简单的 redis 应用程序,使用 gp2 storageclass 作为卷配置器和 ebs csi 插件并描述 redis pod,该 pod 应该停留在 ContainerCreate 阶段。
我们还需要了解什么吗?:我已按照说明设置了 IAM 角色、策略和权限文档 不存在卷加密。为了以防万一,我尝试了 helm 版本和 AWS 控制台版本。我认为它可能与 arm arch 有关,因为我有另一个具有类似配置的环境,除了 arch。任何线索都非常感谢!
环境
Kubernetes 版本(使用
kubectl version
):1.23 / 1.24 / 1.25 / 1.26 - 全部试过 EKS 工作者都是 A 系列,所以它们是 arm64 arch驱动程序版本:v1.23.1-eksbuild.1
我没有尝试任何方法,因为我不知道问题是什么。
答案1
具有 a1 系列的 AWS EKS 与最新的 CSI 驱动程序版本存在问题,但 v1.21.0-eksbuild.1 与它们配合良好。也许更旧版本也行,但我还没试过。