Kubernetes 尝试将加密的AWS EFS与EKS中的EFS csi节点连接时发生装载错误

Kubernetes 尝试将加密的AWS EFS与EKS中的EFS csi节点连接时发生装载错误,kubernetes,amazon-eks,amazon-efs,Kubernetes,Amazon Eks,Amazon Efs,我已尝试连接未加密的EFS,它工作正常,但使用加密EFS时,pod抛出以下错误: Normal Scheduled 10m default scheduler已成功将default/jenkins-efs-test-8ffb4dc86-xnjdj分配给ip-10-100-4-249.ap-south-1.compute.internal 警告失败装载6m33s(x2/8m49s)kubelet,ip-10-100-4-249.ap-south-1.compute.internal无法连接或装载卷

我已尝试连接未加密的EFS,它工作正常,但使用加密EFS时,pod抛出以下错误:

Normal Scheduled 10m default scheduler已成功将default/jenkins-efs-test-8ffb4dc86-xnjdj分配给ip-10-100-4-249.ap-south-1.compute.internal
警告失败装载6m33s(x2/8m49s)kubelet,ip-10-100-4-249.ap-south-1.compute.internal无法连接或装载卷:未安装的卷=[jenkins home],未连接的卷=[sc配置卷tmp jenkins home jenkins配置机密目录插件目录jenkins-efs-test-token-7nmkz]:等待条件时超时
警告失败装载4m19s kubelet,ip-10-100-4-249.ap-south-1.compute.internal无法附加或装载卷:卸载的卷=[jenkins home],未附加的卷=[plugins plugin dir jenkins-efs-test-token-7nmkz sc config volume tmp jenkins home jenkins config secrets dir]:等待条件时超时
警告失败装载2m2s kubelet,ip-10-100-4-249.ap-south-1.compute.internal无法连接或装载卷:未安装的卷=[jenkins home],未连接的卷=[tmp jenkins home jenkins config secrets dir plugins dir jenkins-efs-test-token-7nmkz sc config volume]:等待条件时超时
警告失败安装35s(x13超过10m)kubelet,ip-10-100-4-249.ap-south-1.compute.internal MountVolume.SetUp针对卷“efs pv”失败:kubernetes.io/csi:mounter.SetupAt失败:rpc错误:代码=内部描述=无法在“/var/lib/kubelet/pods/354800a1-dcf5-4812-aa91-0e84ca6fba59/volumes/kubernetes.io~csi/efs pv/mount”处安装:装载失败:退出状态1
装载命令:装载
挂载参数:-t efs/var/lib/kubelet/pods/354800a1-dcf5-4812-aa91-0e84ca6fba59/volumes/kubernetes.io~csi/efs pv/mount
输出:mount:/var/lib/kubelet/pods/354800a1-dcf5-4812-aa91-0e84ca6fba59/volumes/kubernetes.io~csi/efs pv/mount:在/etc/fstab中找不到。

我这里缺少什么?

您没有指定K8s清单是什么或任何配置。本质上,AWS使用为您管理加密密钥

您看到的错误基本上是因为在使用未加密的EFS卷时,K8s端一定有其他一些默认配置正在更改。另外,在尝试装载EFS卷的Kubernetes节点上是否有可用的


✌️

如果EFS文件系统装载未按预期工作,请检查cloud init代理的日志(
/var/logs/cloud init.log
/var/logs/cloud init output.log
)。检查文件

尝试将efs csi节点守护程序从
amazon/aws efs csi驱动程序:v0.3.0
image更新为
amazon/aws efs csi驱动程序:最新版本

下面是安装示例。将其与您的进行比较,并注意:

此脚本的依赖项:

  • 默认ECS群集配置(Amazon Linux ECS)
  • ECS实例必须具有IAM角色,该角色至少授予其对EFS的读取权限(以便定位EFS文件系统ID)
  • ECS实例必须位于允许端口tcp/2049(NFS)入站/出站的安全组中
  • ECS实例所属的安全组必须与目标EFS文件系统相关联
此脚本的注释:

  • EFS装载路径是基于每个实例计算的,因为EFS端点根据启动实例的区域和可用性区域而变化
  • EFS装载被添加到
    /etc/fstab
    ,这样,如果ECS实例重新启动,装载点将被重新创建
  • Docker将重新启动,以确保它正确检测EFS文件系统装载
在安装EFS后,使用以下命令重新启动docker:
$service docker Restart
。最后,尝试重新启动EKS工作节点


看一看:,.

我没有更改加密卷的yaml文件中的任何装载配置,我已经尝试使用efs provisioner,它工作正常。